Refactor NamedMembers: encapsulate fields
Also some stylistic changes
This commit is contained in:
+3
-7
@@ -79,15 +79,11 @@ public final class JavaDescriptorPropertiesResolver {
|
|||||||
) {
|
) {
|
||||||
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
JavaDescriptorResolver.getResolverScopeData(scopeData);
|
||||||
|
|
||||||
if (namedMembers.propertyDescriptors != null) {
|
if (namedMembers.getPropertyDescriptors() != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (namedMembers.propertyAccessors == null) {
|
Map<String, GroupingValue> map = collectGroupingValuesFromAccessors(namedMembers.getPropertyAccessors());
|
||||||
namedMembers.propertyAccessors = Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, GroupingValue> map = collectGroupingValuesFromAccessors(namedMembers.propertyAccessors);
|
|
||||||
|
|
||||||
Set<PropertyDescriptor> propertiesFromCurrent = new HashSet<PropertyDescriptor>(1);
|
Set<PropertyDescriptor> propertiesFromCurrent = new HashSet<PropertyDescriptor>(1);
|
||||||
|
|
||||||
@@ -263,7 +259,7 @@ public final class JavaDescriptorPropertiesResolver {
|
|||||||
OverrideResolver.resolveUnknownVisibilities(properties, trace);
|
OverrideResolver.resolveUnknownVisibilities(properties, trace);
|
||||||
properties.addAll(propertiesFromCurrent);
|
properties.addAll(propertiesFromCurrent);
|
||||||
|
|
||||||
namedMembers.propertyDescriptors = Sets.<VariableDescriptor>newHashSet(properties);
|
namedMembers.setPropertyDescriptors(Sets.<VariableDescriptor>newHashSet(properties));
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<TypeParameterDescriptor> resolvePropertyTypeParameters(
|
private List<TypeParameterDescriptor> resolvePropertyTypeParameters(
|
||||||
|
|||||||
+8
-8
@@ -941,7 +941,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, fieldName,
|
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, fieldName,
|
||||||
"class or namespace " + qualifiedName);
|
"class or namespace " + qualifiedName);
|
||||||
|
|
||||||
return namedMembers.propertyDescriptors;
|
return namedMembers.getPropertyDescriptors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -960,7 +960,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
javaDescriptorPropertiesResolver.resolveNamedGroupProperties(
|
||||||
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName,
|
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName,
|
||||||
"class or namespace " + psiClass.getQualifiedName());
|
"class or namespace " + psiClass.getQualifiedName());
|
||||||
descriptors.addAll(namedMembers.propertyDescriptors);
|
descriptors.addAll(namedMembers.getPropertyDescriptors());
|
||||||
}
|
}
|
||||||
|
|
||||||
return descriptors;
|
return descriptors;
|
||||||
@@ -970,14 +970,14 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
@NotNull ClassOrNamespaceDescriptor owner, PsiClass psiClass,
|
@NotNull ClassOrNamespaceDescriptor owner, PsiClass psiClass,
|
||||||
NamedMembers namedMembers, Name methodName, ResolverScopeData scopeData
|
NamedMembers namedMembers, Name methodName, ResolverScopeData scopeData
|
||||||
) {
|
) {
|
||||||
if (namedMembers.functionDescriptors != null) {
|
if (namedMembers.getFunctionDescriptors() != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Set<FunctionDescriptor> functions = new HashSet<FunctionDescriptor>();
|
final Set<FunctionDescriptor> functions = new HashSet<FunctionDescriptor>();
|
||||||
|
|
||||||
Set<SimpleFunctionDescriptor> functionsFromCurrent = Sets.newHashSet();
|
Set<SimpleFunctionDescriptor> functionsFromCurrent = Sets.newHashSet();
|
||||||
for (PsiMethodWrapper method : namedMembers.methods) {
|
for (PsiMethodWrapper method : namedMembers.getMethods()) {
|
||||||
SimpleFunctionDescriptor function = resolveMethodToFunctionDescriptor(psiClass, method, scopeData);
|
SimpleFunctionDescriptor function = resolveMethodToFunctionDescriptor(psiClass, method, scopeData);
|
||||||
if (function != null) {
|
if (function != null) {
|
||||||
functionsFromCurrent.add(function);
|
functionsFromCurrent.add(function);
|
||||||
@@ -1014,7 +1014,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namedMembers.functionDescriptors = functions;
|
namedMembers.setFunctionDescriptors(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(ResolverScopeData scopeData, Name methodName) {
|
private static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(ResolverScopeData scopeData, Name methodName) {
|
||||||
@@ -1041,11 +1041,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
Map<Name, NamedMembers> namedMembersMap = scopeData.getNamedMembersMap();
|
Map<Name, NamedMembers> namedMembersMap = scopeData.getNamedMembersMap();
|
||||||
|
|
||||||
NamedMembers namedMembers = namedMembersMap.get(methodName);
|
NamedMembers namedMembers = namedMembersMap.get(methodName);
|
||||||
if (namedMembers != null && namedMembers.methods != null) {
|
if (namedMembers != null) {
|
||||||
|
|
||||||
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, methodName, scopeData);
|
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, methodName, scopeData);
|
||||||
|
|
||||||
return namedMembers.functionDescriptors;
|
return namedMembers.getFunctionDescriptors();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return Collections.emptySet();
|
return Collections.emptySet();
|
||||||
@@ -1408,7 +1408,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
NamedMembers namedMembers = entry.getValue();
|
NamedMembers namedMembers = entry.getValue();
|
||||||
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(),
|
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(),
|
||||||
namedMembers, methodName, scopeData);
|
namedMembers, methodName, scopeData);
|
||||||
functions.addAll(namedMembers.functionDescriptors);
|
functions.addAll(namedMembers.getFunctionDescriptors());
|
||||||
}
|
}
|
||||||
|
|
||||||
return functions;
|
return functions;
|
||||||
|
|||||||
@@ -16,36 +16,65 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java;
|
package org.jetbrains.jet.lang.resolve.java;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
*/
|
*/
|
||||||
class NamedMembers {
|
public class NamedMembers {
|
||||||
List<PsiMethodWrapper> methods = new ArrayList<PsiMethodWrapper>(0);
|
|
||||||
|
|
||||||
@Nullable
|
@NotNull
|
||||||
List<PropertyAccessorData> propertyAccessors;
|
private final List<PsiMethodWrapper> methods = Lists.newArrayList();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private final List<PropertyAccessorData> propertyAccessors = Lists.newArrayList();
|
||||||
|
|
||||||
|
private Set<VariableDescriptor> propertyDescriptors;
|
||||||
|
|
||||||
Set<VariableDescriptor> propertyDescriptors;
|
|
||||||
/** Including from supertypes */
|
/** Including from supertypes */
|
||||||
Set<FunctionDescriptor> functionDescriptors;
|
private Set<FunctionDescriptor> functionDescriptors;
|
||||||
|
|
||||||
void addMethod(PsiMethodWrapper method) {
|
void addMethod(@NotNull PsiMethodWrapper method) {
|
||||||
methods.add(method);
|
methods.add(method);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addPropertyAccessor(PropertyAccessorData propertyAccessorData) {
|
void addPropertyAccessor(@NotNull PropertyAccessorData propertyAccessorData) {
|
||||||
if (propertyAccessors == null) {
|
|
||||||
propertyAccessors = new ArrayList<PropertyAccessorData>();
|
|
||||||
}
|
|
||||||
propertyAccessors.add(propertyAccessorData);
|
propertyAccessors.add(propertyAccessorData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public List<PsiMethodWrapper> getMethods() {
|
||||||
|
return methods;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public List<PropertyAccessorData> getPropertyAccessors() {
|
||||||
|
return propertyAccessors;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Set<VariableDescriptor> getPropertyDescriptors() {
|
||||||
|
return propertyDescriptors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPropertyDescriptors(@NotNull Set<VariableDescriptor> propertyDescriptors) {
|
||||||
|
this.propertyDescriptors = propertyDescriptors;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Set<FunctionDescriptor> getFunctionDescriptors() {
|
||||||
|
return functionDescriptors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFunctionDescriptors(@NotNull Set<FunctionDescriptor> functionDescriptors) {
|
||||||
|
this.functionDescriptors = functionDescriptors;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user