less repetitive class+member names in second smart completion code (IDEA-CR-6176)

This commit is contained in:
peter
2015-10-28 14:02:37 +01:00
parent 51f87c12a5
commit c6a1ea504e
6 changed files with 22 additions and 22 deletions
@@ -33,9 +33,9 @@ import static com.intellij.codeInsight.completion.ReferenceExpressionCompletionC
* @author peter
*/
class ArrayMemberAccess {
static void addArrayMemberAccessors(final PsiElement element, final String prefix, final PsiType itemType,
final PsiElement qualifier, final Consumer<LookupElement> result, PsiModifierListOwner object,
final PsiType expectedType)
static void addMemberAccessors(final PsiElement element, final String prefix, final PsiType itemType,
final PsiElement qualifier, final Consumer<LookupElement> result, PsiModifierListOwner object,
final PsiType expectedType)
throws IncorrectOperationException {
if (itemType instanceof PsiArrayType && expectedType.isAssignableFrom(((PsiArrayType)itemType).getComponentType())) {
final PsiExpression conversion = createExpression(getQualifierText(qualifier) + prefix + "[0]", element);
@@ -54,7 +54,7 @@ class ArrayMemberAccess {
}
@Nullable
static ExpressionLookupItem getSingleArrayElementAccess(PsiElement element, LookupElement item) {
static ExpressionLookupItem accessFirstElement(PsiElement element, LookupElement item) {
if (item.getObject() instanceof PsiLocalVariable) {
final PsiLocalVariable variable = (PsiLocalVariable)item.getObject();
final PsiType type = variable.getType();
@@ -38,10 +38,10 @@ class ChainedCallCompletion {
StandardPatterns.string().oneOf("hashCode", "equals", "finalize", "wait", "notify", "notifyAll", "getClass", "clone", "toString")).
definedInClass(CommonClassNames.JAVA_LANG_OBJECT);
static void addChainedCallVariants(final PsiElement place, LookupElement qualifierItem,
final Consumer<LookupElement> result,
PsiType qualifierType,
final PsiType expectedType, JavaSmartCompletionParameters parameters) throws
static void addChains(final PsiElement place, LookupElement qualifierItem,
final Consumer<LookupElement> result,
PsiType qualifierType,
final PsiType expectedType, JavaSmartCompletionParameters parameters) throws
IncorrectOperationException {
final Object object = qualifierItem.getObject();
if (OBJECT_METHOD_PATTERN.accepts(object) && !allowGetClass(object, parameters)) {
@@ -36,12 +36,12 @@ import static com.intellij.codeInsight.completion.ReferenceExpressionCompletionC
* @author peter
*/
class FromArrayConversion {
static void addConversionsFromArray(final PsiElement element,
final String prefix,
final PsiType itemType,
final Consumer<LookupElement> result,
@Nullable PsiElement qualifier,
final PsiType expectedType) throws IncorrectOperationException {
static void addConversions(final PsiElement element,
final String prefix,
final PsiType itemType,
final Consumer<LookupElement> result,
@Nullable PsiElement qualifier,
final PsiType expectedType) throws IncorrectOperationException {
final String methodName = getArraysConversionMethod(itemType, expectedType);
if (methodName == null) return;
@@ -108,7 +108,7 @@ public class ReferenceExpressionCompletionContributor {
final Set<LookupElement> base =
JavaSmartCompletionContributor.completeReference(element, reference, filter, false, true, parameters.getParameters(), PrefixMatcher.ALWAYS_TRUE);
for (final LookupElement item : new LinkedHashSet<LookupElement>(base)) {
ExpressionLookupItem access = ArrayMemberAccess.getSingleArrayElementAccess(element, item);
ExpressionLookupItem access = ArrayMemberAccess.accessFirstElement(element, item);
if (access != null) {
base.add(access);
PsiType type = access.getType();
@@ -108,16 +108,16 @@ class SlowerTypeConversions implements Runnable {
final PsiElement qualifier =
element1 instanceof PsiJavaCodeReferenceElement ? ((PsiJavaCodeReferenceElement)element1).getQualifier() : null;
final PsiType expectedType = parameters.getExpectedType();
ChainedCallCompletion.addChainedCallVariants(element, baseItem, result, itemType, expectedType, parameters);
ChainedCallCompletion.addChains(element, baseItem, result, itemType, expectedType, parameters);
final String prefix = getItemText(object);
if (prefix == null) return;
FromArrayConversion.addConversionsFromArray(element, prefix, itemType, result, qualifier, expectedType);
FromArrayConversion.addConversions(element, prefix, itemType, result, qualifier, expectedType);
ToArrayConversion.addToArrayConversions(element, object, prefix, itemType, result, qualifier, expectedType);
ToArrayConversion.addConversions(element, object, prefix, itemType, result, qualifier, expectedType);
ArrayMemberAccess.addArrayMemberAccessors(element, prefix, itemType, qualifier, result, (PsiModifierListOwner)object, expectedType);
ArrayMemberAccess.addMemberAccessors(element, prefix, itemType, qualifier, result, (PsiModifierListOwner)object, expectedType);
}
catch (IncorrectOperationException ignored) {
}
@@ -36,9 +36,9 @@ import static com.intellij.codeInsight.completion.ReferenceExpressionCompletionC
* @author peter
*/
public class ToArrayConversion {
static void addToArrayConversions(final PsiElement element, final Object object, final String prefix, final PsiType itemType,
final Consumer<LookupElement> result, @Nullable final PsiElement qualifier,
final PsiType expectedType) {
static void addConversions(final PsiElement element, final Object object, final String prefix, final PsiType itemType,
final Consumer<LookupElement> result, @Nullable final PsiElement qualifier,
final PsiType expectedType) {
final String callSpace = getSpace(CodeStyleSettingsManager.getSettings(element.getProject()).SPACE_WITHIN_METHOD_CALL_PARENTHESES);
final PsiType componentType = PsiUtil.extractIterableTypeParameter(itemType, true);
if (componentType == null || !(expectedType instanceof PsiArrayType)) return;