/projects/eclipse_SDK-3.7.1/plugins/org.eclipse.jdt.core.source_3.7.1.v_B76_R37x/org/eclipse/jdt/internal/codeassist/CompletionRequestorWrapper.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 340 lines · 314 code · 10 blank · 16 comment · 54 complexity · 2154ec42d6d10499e55a81a0f919d02e MD5 · raw file

  1. /*******************************************************************************
  2. * Copyright (c) 2004, 2009 IBM Corporation and others.
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution, and is available at
  6. * http://www.eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors:
  9. * IBM Corporation - initial API and implementation
  10. *******************************************************************************/
  11. package org.eclipse.jdt.internal.codeassist;
  12. import org.eclipse.jdt.core.CompletionProposal;
  13. import org.eclipse.jdt.core.CompletionRequestor;
  14. import org.eclipse.jdt.core.Flags;
  15. import org.eclipse.jdt.core.Signature;
  16. import org.eclipse.jdt.core.compiler.CharOperation;
  17. import org.eclipse.jdt.core.compiler.IProblem;
  18. /**
  19. * This CompletionRequetor wrap the old requestor ICOmpletionRequestor
  20. * @since 3.1
  21. * @deprecated
  22. */
  23. public class CompletionRequestorWrapper extends CompletionRequestor {
  24. private static boolean DECODE_SIGNATURE = false;
  25. private org.eclipse.jdt.core.ICompletionRequestor requestor;
  26. public CompletionRequestorWrapper(org.eclipse.jdt.core.ICompletionRequestor requestor) {
  27. this.requestor = requestor;
  28. }
  29. public void accept(CompletionProposal proposal) {
  30. InternalCompletionProposal internalCompletionProposal = (InternalCompletionProposal) proposal;
  31. switch(internalCompletionProposal.getKind()) {
  32. case CompletionProposal.KEYWORD:
  33. this.requestor.acceptKeyword(
  34. internalCompletionProposal.getName(),
  35. internalCompletionProposal.getReplaceStart(),
  36. internalCompletionProposal.getReplaceEnd(),
  37. internalCompletionProposal.getRelevance());
  38. break;
  39. case CompletionProposal.PACKAGE_REF:
  40. if(DECODE_SIGNATURE) {
  41. this.requestor.acceptPackage(
  42. internalCompletionProposal.getDeclarationSignature(),
  43. internalCompletionProposal.getCompletion(),
  44. internalCompletionProposal.getReplaceStart(),
  45. internalCompletionProposal.getReplaceEnd(),
  46. internalCompletionProposal.getRelevance());
  47. } else {
  48. this.requestor.acceptPackage(
  49. internalCompletionProposal.getPackageName(),
  50. internalCompletionProposal.getCompletion(),
  51. internalCompletionProposal.getReplaceStart(),
  52. internalCompletionProposal.getReplaceEnd(),
  53. internalCompletionProposal.getRelevance());
  54. }
  55. break;
  56. case CompletionProposal.TYPE_REF:
  57. if((internalCompletionProposal.getFlags() & Flags.AccEnum) != 0) {
  58. // does not exist for old requestor
  59. } else if((internalCompletionProposal.getFlags() & Flags.AccInterface) != 0) {
  60. if(DECODE_SIGNATURE) {
  61. this.requestor.acceptInterface(
  62. internalCompletionProposal.getDeclarationSignature(),
  63. Signature.getSignatureSimpleName(internalCompletionProposal.getSignature()),
  64. internalCompletionProposal.getCompletion(),
  65. internalCompletionProposal.getFlags() & ~Flags.AccInterface,
  66. internalCompletionProposal.getReplaceStart(),
  67. internalCompletionProposal.getReplaceEnd(),
  68. internalCompletionProposal.getRelevance());
  69. } else {
  70. this.requestor.acceptInterface(
  71. internalCompletionProposal.getPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getPackageName(),
  72. internalCompletionProposal.getTypeName(),
  73. internalCompletionProposal.getCompletion(),
  74. internalCompletionProposal.getFlags() & ~Flags.AccInterface,
  75. internalCompletionProposal.getReplaceStart(),
  76. internalCompletionProposal.getReplaceEnd(),
  77. internalCompletionProposal.getRelevance());
  78. }
  79. } else {
  80. if(DECODE_SIGNATURE) {
  81. this.requestor.acceptClass(
  82. internalCompletionProposal.getDeclarationSignature(),
  83. Signature.getSignatureSimpleName(internalCompletionProposal.getSignature()),
  84. internalCompletionProposal.getCompletion(),
  85. internalCompletionProposal.getFlags(),
  86. internalCompletionProposal.getReplaceStart(),
  87. internalCompletionProposal.getReplaceEnd(),
  88. internalCompletionProposal.getRelevance());
  89. } else {
  90. this.requestor.acceptClass(
  91. internalCompletionProposal.getPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getPackageName(),
  92. internalCompletionProposal.getTypeName(),
  93. internalCompletionProposal.getCompletion(),
  94. internalCompletionProposal.getFlags(),
  95. internalCompletionProposal.getReplaceStart(),
  96. internalCompletionProposal.getReplaceEnd(),
  97. internalCompletionProposal.getRelevance());
  98. }
  99. }
  100. break;
  101. case CompletionProposal.FIELD_REF:
  102. if(DECODE_SIGNATURE) {
  103. this.requestor.acceptField(
  104. Signature.getSignatureQualifier(internalCompletionProposal.getDeclarationSignature()),
  105. Signature.getSignatureSimpleName(internalCompletionProposal.getDeclarationSignature()),
  106. internalCompletionProposal.getName(),
  107. Signature.getSignatureQualifier(internalCompletionProposal.getSignature()),
  108. Signature.getSignatureSimpleName(internalCompletionProposal.getSignature()),
  109. internalCompletionProposal.getCompletion(),
  110. internalCompletionProposal.getFlags(),
  111. internalCompletionProposal.getReplaceStart(),
  112. internalCompletionProposal.getReplaceEnd(),
  113. internalCompletionProposal.getRelevance()
  114. );
  115. } else {
  116. this.requestor.acceptField(
  117. internalCompletionProposal.getDeclarationPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getDeclarationPackageName(),
  118. internalCompletionProposal.getDeclarationTypeName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getDeclarationTypeName(),
  119. internalCompletionProposal.getName(),
  120. internalCompletionProposal.getPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getPackageName(),
  121. internalCompletionProposal.getTypeName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getTypeName(),
  122. internalCompletionProposal.getCompletion(),
  123. internalCompletionProposal.getFlags(),
  124. internalCompletionProposal.getReplaceStart(),
  125. internalCompletionProposal.getReplaceEnd(),
  126. internalCompletionProposal.getRelevance()
  127. );
  128. }
  129. break;
  130. case CompletionProposal.METHOD_REF:
  131. if(DECODE_SIGNATURE) {
  132. this.requestor.acceptMethod(
  133. Signature.getSignatureQualifier(internalCompletionProposal.getDeclarationSignature()),
  134. Signature.getSignatureSimpleName(internalCompletionProposal.getDeclarationSignature()),
  135. internalCompletionProposal.getName(),
  136. getParameterPackages(internalCompletionProposal.getSignature()),
  137. getParameterTypes(internalCompletionProposal.getSignature()),
  138. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  139. Signature.getSignatureQualifier(Signature.getReturnType(internalCompletionProposal.getSignature())),
  140. Signature.getSignatureSimpleName(Signature.getReturnType(internalCompletionProposal.getSignature())),
  141. internalCompletionProposal.getCompletion(),
  142. internalCompletionProposal.getFlags(),
  143. internalCompletionProposal.getReplaceStart(),
  144. internalCompletionProposal.getReplaceEnd(),
  145. internalCompletionProposal.getRelevance()
  146. );
  147. } else {
  148. this.requestor.acceptMethod(
  149. internalCompletionProposal.getDeclarationPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getDeclarationPackageName(),
  150. internalCompletionProposal.getDeclarationTypeName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getDeclarationTypeName(),
  151. internalCompletionProposal.getName(),
  152. internalCompletionProposal.getParameterPackageNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterPackageNames(),
  153. internalCompletionProposal.getParameterTypeNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterTypeNames(),
  154. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  155. internalCompletionProposal.getPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getPackageName(),
  156. internalCompletionProposal.getTypeName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getTypeName(),
  157. internalCompletionProposal.getCompletion(),
  158. internalCompletionProposal.getFlags(),
  159. internalCompletionProposal.getReplaceStart(),
  160. internalCompletionProposal.getReplaceEnd(),
  161. internalCompletionProposal.getRelevance()
  162. );
  163. }
  164. break;
  165. case CompletionProposal.METHOD_DECLARATION:
  166. if(DECODE_SIGNATURE) {
  167. this.requestor.acceptMethodDeclaration(
  168. Signature.getSignatureQualifier(internalCompletionProposal.getDeclarationSignature()),
  169. Signature.getSignatureSimpleName(internalCompletionProposal.getDeclarationSignature()),
  170. internalCompletionProposal.getName(),
  171. getParameterPackages(internalCompletionProposal.getSignature()),
  172. getParameterTypes(internalCompletionProposal.getSignature()),
  173. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  174. Signature.getSignatureQualifier(Signature.getReturnType(internalCompletionProposal.getSignature())),
  175. Signature.getSignatureSimpleName(Signature.getReturnType(internalCompletionProposal.getSignature())),
  176. internalCompletionProposal.getCompletion(),
  177. internalCompletionProposal.getFlags(),
  178. internalCompletionProposal.getReplaceStart(),
  179. internalCompletionProposal.getReplaceEnd(),
  180. internalCompletionProposal.getRelevance()
  181. );
  182. } else {
  183. this.requestor.acceptMethodDeclaration(
  184. internalCompletionProposal.getDeclarationPackageName(),
  185. internalCompletionProposal.getDeclarationTypeName(),
  186. internalCompletionProposal.getName(),
  187. internalCompletionProposal.getParameterPackageNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterPackageNames(),
  188. internalCompletionProposal.getParameterTypeNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterTypeNames(),
  189. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  190. internalCompletionProposal.getPackageName(),
  191. internalCompletionProposal.getTypeName(),
  192. internalCompletionProposal.getCompletion(),
  193. internalCompletionProposal.getFlags(),
  194. internalCompletionProposal.getReplaceStart(),
  195. internalCompletionProposal.getReplaceEnd(),
  196. internalCompletionProposal.getRelevance()
  197. );
  198. }
  199. break;
  200. case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
  201. if(DECODE_SIGNATURE) {
  202. this.requestor.acceptAnonymousType(
  203. Signature.getSignatureQualifier(internalCompletionProposal.getDeclarationSignature()),
  204. Signature.getSignatureSimpleName(internalCompletionProposal.getDeclarationSignature()),
  205. getParameterPackages(internalCompletionProposal.getSignature()),
  206. getParameterTypes(internalCompletionProposal.getSignature()),
  207. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  208. internalCompletionProposal.getCompletion(),
  209. internalCompletionProposal.getFlags(),
  210. internalCompletionProposal.getReplaceStart(),
  211. internalCompletionProposal.getReplaceEnd(),
  212. internalCompletionProposal.getRelevance()
  213. );
  214. } else {
  215. this.requestor.acceptAnonymousType(
  216. internalCompletionProposal.getDeclarationPackageName(),
  217. internalCompletionProposal.getDeclarationTypeName(),
  218. internalCompletionProposal.getParameterPackageNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterPackageNames(),
  219. internalCompletionProposal.getParameterTypeNames() == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.getParameterTypeNames(),
  220. internalCompletionProposal.findParameterNames(null) == null ? CharOperation.NO_CHAR_CHAR : internalCompletionProposal.findParameterNames(null),
  221. internalCompletionProposal.getCompletion(),
  222. internalCompletionProposal.getFlags(),
  223. internalCompletionProposal.getReplaceStart(),
  224. internalCompletionProposal.getReplaceEnd(),
  225. internalCompletionProposal.getRelevance()
  226. );
  227. }
  228. break;
  229. case CompletionProposal.LABEL_REF :
  230. this.requestor.acceptLabel(
  231. internalCompletionProposal.getCompletion(),
  232. internalCompletionProposal.getReplaceStart(),
  233. internalCompletionProposal.getReplaceEnd(),
  234. internalCompletionProposal.getRelevance()
  235. );
  236. break;
  237. case CompletionProposal.LOCAL_VARIABLE_REF:
  238. if(DECODE_SIGNATURE) {
  239. this.requestor.acceptLocalVariable(
  240. internalCompletionProposal.getCompletion(),
  241. Signature.getSignatureQualifier(internalCompletionProposal.getSignature()),
  242. Signature.getSignatureSimpleName(internalCompletionProposal.getSignature()),
  243. internalCompletionProposal.getFlags(),
  244. internalCompletionProposal.getReplaceStart(),
  245. internalCompletionProposal.getReplaceEnd(),
  246. internalCompletionProposal.getRelevance()
  247. );
  248. } else {
  249. this.requestor.acceptLocalVariable(
  250. internalCompletionProposal.getCompletion(),
  251. internalCompletionProposal.getPackageName() == null ? CharOperation.NO_CHAR : internalCompletionProposal.getPackageName(),
  252. internalCompletionProposal.getTypeName(),
  253. internalCompletionProposal.getFlags(),
  254. internalCompletionProposal.getReplaceStart(),
  255. internalCompletionProposal.getReplaceEnd(),
  256. internalCompletionProposal.getRelevance()
  257. );
  258. }
  259. break;
  260. case CompletionProposal.VARIABLE_DECLARATION:
  261. if(DECODE_SIGNATURE) {
  262. this.requestor.acceptLocalVariable(
  263. internalCompletionProposal.getCompletion(),
  264. Signature.getSignatureQualifier(internalCompletionProposal.getSignature()),
  265. Signature.getSignatureSimpleName(internalCompletionProposal.getSignature()),
  266. internalCompletionProposal.getFlags(),
  267. internalCompletionProposal.getReplaceStart(),
  268. internalCompletionProposal.getReplaceEnd(),
  269. internalCompletionProposal.getRelevance()
  270. );
  271. } else {
  272. this.requestor.acceptLocalVariable(
  273. internalCompletionProposal.getCompletion(),
  274. internalCompletionProposal.getPackageName(),
  275. internalCompletionProposal.getTypeName(),
  276. internalCompletionProposal.getFlags(),
  277. internalCompletionProposal.getReplaceStart(),
  278. internalCompletionProposal.getReplaceEnd(),
  279. internalCompletionProposal.getRelevance()
  280. );
  281. }
  282. break;
  283. case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
  284. if(this.requestor instanceof IExtendedCompletionRequestor) {
  285. IExtendedCompletionRequestor r = (IExtendedCompletionRequestor) this.requestor;
  286. if(DECODE_SIGNATURE) {
  287. r.acceptPotentialMethodDeclaration(
  288. Signature.getSignatureQualifier(internalCompletionProposal.getDeclarationSignature()),
  289. Signature.getSignatureSimpleName(internalCompletionProposal.getDeclarationSignature()),
  290. internalCompletionProposal.getName(),
  291. internalCompletionProposal.getReplaceStart(),
  292. internalCompletionProposal.getReplaceEnd(),
  293. internalCompletionProposal.getRelevance()
  294. );
  295. } else {
  296. r.acceptPotentialMethodDeclaration(
  297. internalCompletionProposal.getDeclarationPackageName(),
  298. internalCompletionProposal.getDeclarationTypeName(),
  299. internalCompletionProposal.getName(),
  300. internalCompletionProposal.getReplaceStart(),
  301. internalCompletionProposal.getReplaceEnd(),
  302. internalCompletionProposal.getRelevance()
  303. );
  304. }
  305. }
  306. break;
  307. }
  308. }
  309. public void completionFailure(IProblem problem) {
  310. this.requestor.acceptError(problem);
  311. }
  312. private char[][] getParameterPackages(char[] methodSignature) {
  313. char[][] parameterQualifiedTypes = Signature.getParameterTypes(methodSignature);
  314. int length = parameterQualifiedTypes == null ? 0 : parameterQualifiedTypes.length;
  315. char[][] parameterPackages = new char[length][];
  316. for(int i = 0; i < length; i++) {
  317. parameterPackages[i] = Signature.getSignatureQualifier(parameterQualifiedTypes[i]);
  318. }
  319. return parameterPackages;
  320. }
  321. private char[][] getParameterTypes(char[] methodSignature) {
  322. char[][] parameterQualifiedTypes = Signature.getParameterTypes(methodSignature);
  323. int length = parameterQualifiedTypes == null ? 0 : parameterQualifiedTypes.length;
  324. char[][] parameterPackages = new char[length][];
  325. for(int i = 0; i < length; i++) {
  326. parameterPackages[i] = Signature.getSignatureSimpleName(parameterQualifiedTypes[i]);
  327. }
  328. return parameterPackages;
  329. }
  330. }