Add Name parameter to NamedMembers class

Rename: MembersByNameCache#entrySet() -> AllMembers(), logic simplified
This commit is contained in:
Pavel V. Talanov
2012-10-17 15:59:43 +04:00
parent 3a830a3499
commit 29de78f594
4 changed files with 25 additions and 15 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.resolve.java.prop.PropertyParseResult;
import org.jetbrains.jet.lang.resolve.java.wrapper.*;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -39,15 +40,16 @@ public final class MembersByNameCache {
return namedMembersMap.get(name);
}
public Iterable<? extends Map.Entry<Name, NamedMembers>> entrySet() {
return namedMembersMap.entrySet();
@NotNull
public Collection<NamedMembers> allMembers() {
return namedMembersMap.values();
}
@NotNull
private NamedMembers getOrCreateEmpty(@NotNull Name name) {
NamedMembers r = namedMembersMap.get(name);
if (r == null) {
r = new NamedMembers();
r = new NamedMembers(name);
namedMembersMap.put(name, r);
}
return r;
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.List;
import java.util.Set;
@@ -31,6 +32,13 @@ import java.util.Set;
*/
public class NamedMembers {
public NamedMembers(@NotNull Name name) {
this.name = name;
}
@NotNull
private final Name name;
@NotNull
private final List<PsiMethodWrapper> methods = Lists.newArrayList();
@@ -55,6 +63,11 @@ public class NamedMembers {
return methods;
}
@NotNull
public Name getName() {
return name;
}
@NotNull
public List<PropertyAccessorData> getPropertyAccessors() {
return propertyAccessors;
@@ -265,7 +265,7 @@ public final class JavaFunctionResolver {
}
}
public static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
private static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
ResolverScopeData scopeData,
Name methodName
) {
@@ -281,14 +281,12 @@ public final class JavaFunctionResolver {
public List<FunctionDescriptor> resolveMethods(@NotNull ResolverScopeData scopeData) {
List<FunctionDescriptor> functions = new ArrayList<FunctionDescriptor>();
for (Map.Entry<Name, NamedMembers> entry : scopeData.getMembersCache().entrySet()) {
Name methodName = entry.getKey();
NamedMembers namedMembers = entry.getValue();
for (NamedMembers member : scopeData.getMembersCache().allMembers()) {
PsiClass psiClass = scopeData.getPsiClass();
assert psiClass != null;
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass,
namedMembers, methodName, scopeData);
functions.addAll(namedMembers.getFunctionDescriptors());
member, member.getName(), scopeData);
functions.addAll(member.getFunctionDescriptors());
}
return functions;
@@ -108,14 +108,11 @@ public final class JavaPropertiesResolver {
Set<VariableDescriptor> descriptors = Sets.newHashSet();
MembersByNameCache membersForProperties = scopeData.getMembersCache();
for (Map.Entry<Name, NamedMembers> entry : membersForProperties.entrySet()) {
NamedMembers namedMembers = entry.getValue();
Name propertyName = entry.getKey();
for (NamedMembers members : membersForProperties.allMembers()) {
resolveNamedGroupProperties(
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName,
scopeData.getClassOrNamespaceDescriptor(), scopeData, members, members.getName(),
"class or namespace " + psiClass.getQualifiedName());
descriptors.addAll(namedMembers.getPropertyDescriptors());
descriptors.addAll(members.getPropertyDescriptors());
}
return descriptors;