Cleanup ScriptCompletionEngine.

Generify some parts and remove not used private method.

Change-Id: Ib3073b6973f43ad1ecf287196cc3ff4c3ac39bf9
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/core/plugins/org.eclipse.dltk.core/codeassist/org/eclipse/dltk/codeassist/ScriptCompletionEngine.java b/core/plugins/org.eclipse.dltk.core/codeassist/org/eclipse/dltk/codeassist/ScriptCompletionEngine.java
index f2943bc..934d4cb 100644
--- a/core/plugins/org.eclipse.dltk.core/codeassist/org/eclipse/dltk/codeassist/ScriptCompletionEngine.java
+++ b/core/plugins/org.eclipse.dltk.core/codeassist/org/eclipse/dltk/codeassist/ScriptCompletionEngine.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2016 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -35,8 +35,7 @@
  * Abstact base class of the {@link ICompletionEngine} implementations. Provides
  * some functions which might be useful by the implementors.
  */
-public abstract class ScriptCompletionEngine extends Engine implements
-		ICompletionEngine {
+public abstract class ScriptCompletionEngine extends Engine implements ICompletionEngine {
 	protected static final boolean DEBUG = DLTKCore.DEBUG_COMPLETION;
 	protected static final boolean VERBOSE = DEBUG;
 
@@ -55,7 +54,7 @@
 	 * Start of the proposal replace range. Initialized by
 	 * {@link #setSourceRange(int, int)} and used in
 	 * {@link #accept(CompletionProposal)}
-	 * 
+	 *
 	 * <p>
 	 * NOTE: Visibility of this member is going to be changed, your should not
 	 * access it directly.
@@ -67,7 +66,7 @@
 	 * End of the proposal replace range. Initialized by
 	 * {@link #setSourceRange(int, int)} and used in
 	 * {@link #accept(CompletionProposal)}.
-	 * 
+	 *
 	 * <p>
 	 * NOTE: Visibility of this member is going to be changed, your should not
 	 * access it directly.
@@ -96,10 +95,9 @@
 	private IProgressMonitor progressMonitor;
 
 	public ScriptCompletionEngine(/*
-								 * ISearchableEnvironment nameEnvironment,
-								 * CompletionRequestor requestor, Map settings,
-								 * IScriptProject scriptProject
-								 */) {
+									 * ISearchableEnvironment nameEnvironment, CompletionRequestor requestor, Map
+									 * settings, IScriptProject scriptProject
+									 */) {
 		super(null);
 
 		// this.scriptProject = scriptProject;
@@ -110,8 +108,7 @@
 	}
 
 	protected CompletionProposal createProposal(int kind, int completionOffset) {
-		CompletionProposal proposal = CompletionProposal.create(kind,
-				completionOffset - this.offset);
+		CompletionProposal proposal = CompletionProposal.create(kind, completionOffset - this.offset);
 
 		return proposal;
 	}
@@ -169,25 +166,39 @@
 		}
 		if (VERBOSE) {
 			buffer.append("{\n");//$NON-NLS-1$
-			buffer.append("\tCompletion[").append(proposal.getCompletion() == null ? "null" : proposal.getCompletion()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			buffer.append("\tDeclarationKey[").append(proposal.getDeclarationKey() == null ? "null" : proposal.getDeclarationKey()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			buffer.append("\tKey[").append(proposal.getKey() == null ? "null" : proposal.getKey()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			buffer.append("\tName[").append(proposal.getName() == null ? "null" : proposal.getName()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			buffer.append("\tCompletionLocation[").append(proposal.getCompletionLocation()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buffer.append("\tCompletion[") //$NON-NLS-1$
+					.append(proposal.getCompletion() == null ? "null" //$NON-NLS-1$
+							: proposal.getCompletion())
+					.append("]\n"); //$NON-NLS-1$
+			buffer.append("\tDeclarationKey[") //$NON-NLS-1$
+					.append(proposal.getDeclarationKey() == null ? "null" //$NON-NLS-1$
+							: proposal.getDeclarationKey())
+					.append("]\n"); //$NON-NLS-1$
+			buffer.append("\tKey[").append( //$NON-NLS-1$
+					proposal.getKey() == null ? "null" : proposal.getKey()) //$NON-NLS-1$
+					.append("]\n"); //$NON-NLS-1$
+			buffer.append("\tName[").append( //$NON-NLS-1$
+					proposal.getName() == null ? "null" : proposal.getName()) //$NON-NLS-1$
+					.append("]\n"); //$NON-NLS-1$
+			buffer.append("\tCompletionLocation[") //$NON-NLS-1$
+					.append(proposal.getCompletionLocation()).append("]\n"); //$NON-NLS-1$
 			int start = proposal.getReplaceStart();
 			int end = proposal.getReplaceEnd();
 			buffer.append("\tReplaceStart[").append(start).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
 			buffer.append("-ReplaceEnd[").append(end).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$
 			if (this.source != null)
-				buffer.append("\tReplacedText[").append(this.source, start, end - start).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tTokenStart[").append(proposal.getTokenStart()).append("]"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("-TokenEnd[").append(proposal.getTokenEnd()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tRelevance[").append(proposal.getRelevance()).append("]\n"); //$NON-NLS-1$ //$NON-NLS-2$
+				buffer.append("\tReplacedText[") //$NON-NLS-1$
+						.append(this.source, start, end - start).append("]\n"); //$NON-NLS-1$
+			buffer.append("\tTokenStart[").append(proposal.getTokenStart()) //$NON-NLS-1$
+					.append("]"); //$NON-NLS-1$
+			buffer.append("-TokenEnd[").append(proposal.getTokenEnd()) //$NON-NLS-1$
+					.append("]\n"); //$NON-NLS-1$
+			buffer.append("\tRelevance[").append(proposal.getRelevance()) //$NON-NLS-1$
+					.append("]\n"); //$NON-NLS-1$
 			buffer.append("}\n");//$NON-NLS-1$
 		} else {
 			if (proposal.getCompletion() != null) {
-				buffer.append(' ').append('"').append(proposal.getCompletion())
-						.append('"');
+				buffer.append(' ').append('"').append(proposal.getCompletion()).append('"');
 			}
 		}
 		System.out.println(buffer.toString());
@@ -198,8 +209,7 @@
 		this.setSourceRange(start, end, true);
 	}
 
-	protected void setSourceRange(int start, int end,
-			boolean emptyTokenAdjstment) {
+	protected void setSourceRange(int start, int end, boolean emptyTokenAdjstment) {
 		this.startPosition = start;
 		if (emptyTokenAdjstment) {
 			int endOfEmptyToken = getEndOfEmptyToken();
@@ -227,22 +237,18 @@
 		return field.getElementName();
 	}
 
-	public void findKeywords(char[] keyword, String[] choices,
-			boolean canCompleteEmptyToken) {
+	public void findKeywords(char[] keyword, String[] choices, boolean canCompleteEmptyToken) {
 		if (choices == null || choices.length == 0)
 			return;
 
 		int length = keyword.length;
 		if (canCompleteEmptyToken || length > 0) {
 			for (int i = 0; i < choices.length; i++) {
-				if (length <= choices[i].length()
-						&& CharOperation.prefixEquals(keyword, choices[i],
-								false)) {
+				if (length <= choices[i].length() && CharOperation.prefixEquals(keyword, choices[i], false)) {
 					int relevance = computeBaseRelevance();
 
 					relevance += computeRelevanceForInterestingProposal();
-					relevance += computeRelevanceForCaseMatching(keyword,
-							choices[i]);
+					relevance += computeRelevanceForCaseMatching(keyword, choices[i]);
 					relevance += computeRelevanceForRestrictions(IAccessRule.K_ACCESSIBLE); // no
 					/*
 					 * access restriction for keywords
@@ -256,8 +262,7 @@
 					// }
 					this.noProposal = false;
 					if (!this.requestor.isIgnored(CompletionProposal.KEYWORD)) {
-						CompletionProposal proposal = this.createProposal(
-								CompletionProposal.KEYWORD,
+						CompletionProposal proposal = this.createProposal(CompletionProposal.KEYWORD,
 								this.actualCompletionPosition);
 						proposal.setName(choices[i]);
 						proposal.setCompletion(choices[i]);
@@ -269,14 +274,14 @@
 		}
 	}
 
-	protected void findLocalVariables(char[] token, String[] choices,
-			boolean canCompleteEmptyToken, boolean provideDollar) {
+	protected void findLocalVariables(char[] token, String[] choices, boolean canCompleteEmptyToken,
+			boolean provideDollar) {
 		int kind = CompletionProposal.LOCAL_VARIABLE_REF;
 		findElements(token, choices, canCompleteEmptyToken, provideDollar, kind);
 	}
 
-	protected void findElements(char[] token, String[] choices,
-			boolean canCompleteEmptyToken, boolean provideDollar, int kind) {
+	protected void findElements(char[] token, String[] choices, boolean canCompleteEmptyToken, boolean provideDollar,
+			int kind) {
 		if (choices == null || choices.length == 0)
 			return;
 
@@ -287,8 +292,7 @@
 				if (!provideDollar && co.length() > 1 && co.charAt(0) == '$') {
 					co = co.substring(1);
 				}
-				if (length <= co.length()
-						&& CharOperation.prefixEquals(token, co, false)) {
+				if (length <= co.length() && CharOperation.prefixEquals(token, co, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, co);
@@ -298,8 +302,7 @@
 					this.noProposal = false;
 
 					if (!this.requestor.isIgnored(kind)) {
-						CompletionProposal proposal = this.createProposal(kind,
-								this.actualCompletionPosition);
+						CompletionProposal proposal = this.createProposal(kind, this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
 						// proposal.setTypeName(displayName);
@@ -315,8 +318,8 @@
 		}
 	}
 
-	public void findMethods(char[] token, boolean canCompleteEmptyToken,
-			List<IMethod> methods, List methodNames) {
+	public void findMethods(char[] token, boolean canCompleteEmptyToken, List<IMethod> methods,
+			List<String> methodNames) {
 		if (methods == null || methods.size() == 0)
 			return;
 
@@ -325,14 +328,13 @@
 		if (canCompleteEmptyToken || length > 0) {
 			for (int i = 0; i < methods.size(); i++) {
 				IMethod method = methods.get(i);
-				String qname = (String) methodNames.get(i);
+				String qname = methodNames.get(i);
 				// processMethodName(method, tok);
 				String name = qname;
 				if (DEBUG) {
 					System.out.println("Completion:" + qname); //$NON-NLS-1$
 				}
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
+				if (length <= name.length() && CharOperation.prefixEquals(token, name, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, name);
@@ -340,10 +342,8 @@
 
 					// accept result
 					this.noProposal = false;
-					if (!this.requestor
-							.isIgnored(CompletionProposal.METHOD_REF)) {
-						CompletionProposal proposal = this.createProposal(
-								CompletionProposal.METHOD_REF,
+					if (!this.requestor.isIgnored(CompletionProposal.METHOD_REF)) {
+						CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF,
 								this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
@@ -376,18 +376,17 @@
 		}
 	}
 
-	protected void findLocalMethods(char[] token,
-			boolean canCompleteEmptyToken, List methods, List methodNames) {
+	protected void findLocalMethods(char[] token, boolean canCompleteEmptyToken, List<MethodDeclaration> methods,
+			List<String> methodNames) {
 		if (methods == null || methods.size() == 0)
 			return;
 
 		int length = token.length;
 		if (canCompleteEmptyToken || length > 0) {
 			for (int i = 0; i < methods.size(); i++) {
-				MethodDeclaration method = (MethodDeclaration) methods.get(i);
-				String name = ((String) (methodNames.get(i)));
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
+				MethodDeclaration method = methods.get(i);
+				String name = methodNames.get(i);
+				if (length <= name.length() && CharOperation.prefixEquals(token, name, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, name);
@@ -395,10 +394,8 @@
 
 					// accept result
 					this.noProposal = false;
-					if (!this.requestor
-							.isIgnored(CompletionProposal.METHOD_REF)) {
-						CompletionProposal proposal = this.createProposal(
-								CompletionProposal.METHOD_REF,
+					if (!this.requestor.isIgnored(CompletionProposal.METHOD_REF)) {
+						CompletionProposal proposal = this.createProposal(CompletionProposal.METHOD_REF,
 								this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
@@ -407,8 +404,7 @@
 						if (arguments != null && arguments.size() > 0) {
 							String[] args = new String[arguments.size()];
 							for (int j = 0; j < arguments.size(); ++j) {
-								args[j] = ((Argument) arguments.get(j))
-										.getName();
+								args[j] = ((Argument) arguments.get(j)).getName();
 							}
 							proposal.setParameterNames(args);
 						}
@@ -424,20 +420,16 @@
 		}
 	}
 
-	protected void findMethods(char[] token, boolean canCompleteEmptyToken,
-			List<IMethod> methods) {
-		findMethods(token, canCompleteEmptyToken, methods,
-				CompletionProposal.METHOD_REF);
+	protected void findMethods(char[] token, boolean canCompleteEmptyToken, List<IMethod> methods) {
+		findMethods(token, canCompleteEmptyToken, methods, CompletionProposal.METHOD_REF);
 	}
 
-	public void findFields(char[] token, boolean canCompleteEmptyToken,
-			List<IField> fields, ICompletionNameProvider<IField> nameProvider) {
-		findFields(token, canCompleteEmptyToken, fields,
-				CompletionProposal.FIELD_REF, nameProvider);
+	public void findFields(char[] token, boolean canCompleteEmptyToken, List<IField> fields,
+			ICompletionNameProvider<IField> nameProvider) {
+		findFields(token, canCompleteEmptyToken, fields, CompletionProposal.FIELD_REF, nameProvider);
 	}
 
-	protected void findMethods(char[] token, boolean canCompleteEmptyToken,
-			List<IMethod> methods, int kind) {
+	protected void findMethods(char[] token, boolean canCompleteEmptyToken, List<IMethod> methods, int kind) {
 		if (methods == null || methods.size() == 0)
 			return;
 
@@ -451,8 +443,7 @@
 				if (DEBUG) {
 					System.out.println("Completion:" + qname); //$NON-NLS-1$
 				}
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
+				if (length <= name.length() && CharOperation.prefixEquals(token, name, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, name);
@@ -461,8 +452,7 @@
 					// accept result
 					this.noProposal = false;
 					if (!this.requestor.isIgnored(kind)) {
-						CompletionProposal proposal = this.createProposal(kind,
-								this.actualCompletionPosition);
+						CompletionProposal proposal = this.createProposal(kind, this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
 						// proposal.setTypeName(displayName);
@@ -498,8 +488,7 @@
 		}
 	}
 
-	public void findFields(char[] token, boolean canCompleteEmptyToken,
-			List<IField> fields, int kind,
+	public void findFields(char[] token, boolean canCompleteEmptyToken, List<IField> fields, int kind,
 			ICompletionNameProvider<IField> nameProvider) {
 		if (fields == null || fields.size() == 0)
 			return;
@@ -516,8 +505,7 @@
 				if (DEBUG) {
 					System.out.println("Completion:" + qname); //$NON-NLS-1$
 				}
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
+				if (length <= name.length() && CharOperation.prefixEquals(token, name, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, name);
@@ -526,15 +514,13 @@
 					// accept result
 					this.noProposal = false;
 					if (!this.requestor.isIgnored(kind)) {
-						CompletionProposal proposal = this.createProposal(kind,
-								this.actualCompletionPosition);
+						CompletionProposal proposal = this.createProposal(kind, this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
 						// proposal.setTypeName(displayName);
 						proposal.setModelElement(field);
 						proposal.setName(name);
-						proposal.setCompletion(nameProvider
-								.getCompletion(field));
+						proposal.setCompletion(nameProvider.getCompletion(field));
 						// proposal.setFlags(Flags.AccDefault);
 						proposal.setRelevance(relevance);
 						accept(proposal);
@@ -544,46 +530,7 @@
 		}
 	}
 
-	private void findFields(char[] token, boolean canCompleteEmptyToken,
-			List<IField> fields, int kind, List names) {
-		if (fields == null || fields.size() == 0)
-			return;
-
-		int length = token.length;
-		// String tok = new String(token);
-		if (canCompleteEmptyToken || length > 0) {
-			for (int i = 0; i < fields.size(); i++) {
-				IField field = fields.get(i);
-				String qname = (String) names.get(i);
-				String name = qname;
-				if (DEBUG) {
-					System.out.println("Completion:" + qname); //$NON-NLS-1$
-				}
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
-					int relevance = computeBaseRelevance();
-					relevance += computeRelevanceForInterestingProposal();
-					relevance += computeRelevanceForCaseMatching(token, name);
-					relevance += computeRelevanceForRestrictions(IAccessRule.K_ACCESSIBLE); // no
-
-					// accept result
-					this.noProposal = false;
-					if (!this.requestor.isIgnored(kind)) {
-						CompletionProposal proposal = this.createProposal(kind,
-								this.actualCompletionPosition);
-						proposal.setModelElement(field);
-						proposal.setName(name);
-						proposal.setCompletion(qname);
-						proposal.setRelevance(relevance);
-						accept(proposal);
-					}
-				}
-			}
-		}
-	}
-
-	public void findTypes(char[] token, boolean canCompleteEmptyToken,
-			List<IType> types) {
+	public void findTypes(char[] token, boolean canCompleteEmptyToken, List<IType> types) {
 		if (types == null || types.size() == 0)
 			return;
 
@@ -597,8 +544,7 @@
 				if (DEBUG) {
 					System.out.println("Completion:" + qname); //$NON-NLS-1$
 				}
-				if (length <= name.length()
-						&& CharOperation.prefixEquals(token, name, false)) {
+				if (length <= name.length() && CharOperation.prefixEquals(token, name, false)) {
 					int relevance = computeBaseRelevance();
 					relevance += computeRelevanceForInterestingProposal();
 					relevance += computeRelevanceForCaseMatching(token, name);
@@ -608,8 +554,7 @@
 					this.noProposal = false;
 					if (!this.requestor.isIgnored(CompletionProposal.TYPE_REF)) {
 
-						CompletionProposal proposal = this.createProposal(
-								CompletionProposal.TYPE_REF,
+						CompletionProposal proposal = this.createProposal(CompletionProposal.TYPE_REF,
 								this.actualCompletionPosition);
 						// proposal.setSignature(getSignature(typeBinding));
 						// proposal.setPackageName(q);
@@ -635,13 +580,11 @@
 		return RelevanceConstants.R_INTERESTING;
 	}
 
-	public int computeRelevanceForCaseMatching(char[] token,
-			String proposalNameStr) {
+	public int computeRelevanceForCaseMatching(char[] token, String proposalNameStr) {
 		char[] proposalName = proposalNameStr.toCharArray();
 		if (this.options.camelCaseMatch) {
 			if (CharOperation.equals(token, proposalName, true)) {
-				return RelevanceConstants.R_CASE
-						+ RelevanceConstants.R_EXACT_NAME;
+				return RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_NAME;
 			} else if (CharOperation.prefixEquals(token, proposalName, true)) {
 				return RelevanceConstants.R_CASE;
 			} else if (CharOperation.camelCaseMatch(token, proposalName)) {
@@ -651,8 +594,7 @@
 			}
 		} else if (CharOperation.prefixEquals(token, proposalName, true)) {
 			if (CharOperation.equals(token, proposalName, true)) {
-				return RelevanceConstants.R_CASE
-						+ RelevanceConstants.R_EXACT_NAME;
+				return RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_NAME;
 			} else {
 				return RelevanceConstants.R_CASE;
 			}
@@ -679,8 +621,7 @@
 	}
 
 	public void accept(CompletionProposal proposal) {
-		proposal.setReplaceRange(this.startPosition - this.offset,
-				this.endPosition - this.offset);
+		proposal.setReplaceRange(this.startPosition - this.offset, this.endPosition - this.offset);
 		this.requestor.accept(proposal);
 		if (DEBUG) {
 			this.printDebug(proposal);