Rename PropertyAccessorData to PropertyPsiDataElement and move it to wrapper package

This commit is contained in:
Pavel V. Talanov
2012-10-31 18:03:34 +04:00
parent df28484726
commit e8553dcac6
4 changed files with 34 additions and 29 deletions
@@ -96,7 +96,7 @@ public final class MembersCache {
NamedMembers namedMembers = getOrCreateEmpty(Name.identifier(psiClass.getName())); NamedMembers namedMembers = getOrCreateEmpty(Name.identifier(psiClass.getName()));
TypeSource type = new TypeSource("", instanceField.getType(), instanceField); TypeSource type = new TypeSource("", instanceField.getType(), instanceField);
namedMembers.addPropertyAccessor(new PropertyAccessorData(new PsiFieldWrapper(instanceField), type, null)); namedMembers.addPropertyAccessor(new PropertyPsiDataElement(new PsiFieldWrapper(instanceField), type, null));
} }
} }
} }
@@ -154,7 +154,7 @@ public final class MembersCache {
} }
TypeSource type = new TypeSource("", fieldWrapper.getType(), field); TypeSource type = new TypeSource("", fieldWrapper.getType(), field);
namedMembers.addPropertyAccessor(new PropertyAccessorData(fieldWrapper, type, null)); namedMembers.addPropertyAccessor(new PropertyPsiDataElement(fieldWrapper, type, null));
} }
} }
@@ -220,7 +220,7 @@ public final class MembersCache {
new TypeSource(method.getJetMethod().propertyType(), propertyTypeParameter.getPsiParameter().getType(), new TypeSource(method.getJetMethod().propertyType(), propertyTypeParameter.getPsiParameter().getType(),
propertyTypeParameter.getPsiParameter()); propertyTypeParameter.getPsiParameter());
members.addPropertyAccessor(new PropertyAccessorData(method, false, propertyType, receiverType)); members.addPropertyAccessor(new PropertyPsiDataElement(method, false, propertyType, receiverType));
} }
} }
@@ -260,7 +260,7 @@ public final class MembersCache {
assert returnType != null; assert returnType != null;
TypeSource propertyType = new TypeSource(method.getJetMethod().propertyType(), returnType, method.getPsiMethod()); TypeSource propertyType = new TypeSource(method.getJetMethod().propertyType(), returnType, method.getPsiMethod());
members.addPropertyAccessor(new PropertyAccessorData(method, true, propertyType, receiverType)); members.addPropertyAccessor(new PropertyPsiDataElement(method, true, propertyType, receiverType));
} }
} }
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.resolve.java;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.java.wrapper.PropertyPsiDataElement;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
@@ -36,14 +37,14 @@ public final class NamedMembers {
private final List<PsiMethodWrapper> methods = Lists.newArrayList(); private final List<PsiMethodWrapper> methods = Lists.newArrayList();
@NotNull @NotNull
private final List<PropertyAccessorData> propertyAccessors = Lists.newArrayList(); private final List<PropertyPsiDataElement> propertyPsiDataElements = Lists.newArrayList();
void addMethod(@NotNull PsiMethodWrapper method) { void addMethod(@NotNull PsiMethodWrapper method) {
methods.add(method); methods.add(method);
} }
void addPropertyAccessor(@NotNull PropertyAccessorData propertyAccessorData) { void addPropertyAccessor(@NotNull PropertyPsiDataElement propertyPsiDataElement) {
propertyAccessors.add(propertyAccessorData); propertyPsiDataElements.add(propertyPsiDataElement);
} }
@NotNull @NotNull
@@ -57,7 +58,7 @@ public final class NamedMembers {
} }
@NotNull @NotNull
public List<PropertyAccessorData> getPropertyAccessors() { public List<PropertyPsiDataElement> getPropertyPsiDataElements() {
return propertyAccessors; return propertyPsiDataElements;
} }
} }
@@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.java.data.ResolverScopeData;
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData; import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData;
import org.jetbrains.jet.lang.resolve.java.kt.DescriptorKindUtils; import org.jetbrains.jet.lang.resolve.java.kt.DescriptorKindUtils;
import org.jetbrains.jet.lang.resolve.java.kt.JetMethodAnnotation; import org.jetbrains.jet.lang.resolve.java.kt.JetMethodAnnotation;
import org.jetbrains.jet.lang.resolve.java.wrapper.PropertyPsiDataElement;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiFieldWrapper; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiFieldWrapper;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -99,9 +100,9 @@ public final class JavaPropertyResolver {
} }
private static class GroupingValue { private static class GroupingValue {
PropertyAccessorData getter; PropertyPsiDataElement getter;
PropertyAccessorData setter; PropertyPsiDataElement setter;
PropertyAccessorData field; PropertyPsiDataElement field;
boolean ext; boolean ext;
} }
@@ -113,7 +114,7 @@ public final class JavaPropertyResolver {
@NotNull Name propertyName, @NotNull Name propertyName,
@NotNull String context @NotNull String context
) { ) {
Map<String, GroupingValue> map = collectGroupingValuesFromAccessors(namedMembers.getPropertyAccessors()); Map<String, GroupingValue> map = collectGroupingValuesFromAccessors(namedMembers.getPropertyPsiDataElements());
Set<PropertyDescriptor> propertiesFromCurrent = new HashSet<PropertyDescriptor>(1); Set<PropertyDescriptor> propertiesFromCurrent = new HashSet<PropertyDescriptor>(1);
@@ -130,7 +131,7 @@ public final class JavaPropertyResolver {
boolean isFinal = isPropertyFinal(scopeData, members); boolean isFinal = isPropertyFinal(scopeData, members);
boolean isVar = isPropertyVar(members); boolean isVar = isPropertyVar(members);
PropertyAccessorData characteristicMember = getCharacteristicMember(members); PropertyPsiDataElement characteristicMember = getCharacteristicMember(members);
Visibility visibility = DescriptorResolverUtils.resolveVisibility(characteristicMember.getMember().getPsiMember(), null); Visibility visibility = DescriptorResolverUtils.resolveVisibility(characteristicMember.getMember().getPsiMember(), null);
CallableMemberDescriptor.Kind kind = CallableMemberDescriptor.Kind.DECLARATION; CallableMemberDescriptor.Kind kind = CallableMemberDescriptor.Kind.DECLARATION;
@@ -298,7 +299,7 @@ public final class JavaPropertyResolver {
private List<TypeParameterDescriptor> resolvePropertyTypeParameters( private List<TypeParameterDescriptor> resolvePropertyTypeParameters(
@NotNull GroupingValue members, @NotNull GroupingValue members,
@NotNull PropertyAccessorData characteristicMember, @NotNull PropertyPsiDataElement characteristicMember,
@NotNull PropertyDescriptor propertyDescriptor @NotNull PropertyDescriptor propertyDescriptor
) { ) {
// TODO: Can't get type parameters from field - only from accessors // TODO: Can't get type parameters from field - only from accessors
@@ -312,7 +313,7 @@ public final class JavaPropertyResolver {
private JetType getPropertyType( private JetType getPropertyType(
GroupingValue members, GroupingValue members,
PropertyAccessorData characteristicMember, PropertyPsiDataElement characteristicMember,
TypeVariableResolver typeVariableResolverForPropertyInternals TypeVariableResolver typeVariableResolverForPropertyInternals
) { ) {
JetType propertyType; JetType propertyType;
@@ -335,7 +336,7 @@ public final class JavaPropertyResolver {
@Nullable @Nullable
private JetType getReceiverType( private JetType getReceiverType(
PropertyAccessorData characteristicMember, PropertyPsiDataElement characteristicMember,
TypeVariableResolver typeVariableResolverForPropertyInternals TypeVariableResolver typeVariableResolverForPropertyInternals
) { ) {
JetType receiverType; JetType receiverType;
@@ -362,7 +363,7 @@ public final class JavaPropertyResolver {
} }
@NotNull @NotNull
private static PropertyAccessorData getCharacteristicMember(GroupingValue members) { private static PropertyPsiDataElement getCharacteristicMember(GroupingValue members) {
if (members.getter != null) { if (members.getter != null) {
return members.getter; return members.getter;
} }
@@ -422,7 +423,7 @@ public final class JavaPropertyResolver {
} }
} }
private static String propertyKeyForGrouping(PropertyAccessorData propertyAccessor) { private static String propertyKeyForGrouping(PropertyPsiDataElement propertyAccessor) {
String type = key(propertyAccessor.getType()); String type = key(propertyAccessor.getType());
String receiverType = key(propertyAccessor.getReceiverType()); String receiverType = key(propertyAccessor.getReceiverType());
return Pair.create(type, receiverType).toString(); return Pair.create(type, receiverType).toString();
@@ -449,9 +450,9 @@ public final class JavaPropertyResolver {
} }
} }
private static Map<String, GroupingValue> collectGroupingValuesFromAccessors(List<PropertyAccessorData> propertyAccessors) { private static Map<String, GroupingValue> collectGroupingValuesFromAccessors(List<PropertyPsiDataElement> propertyAccessors) {
Map<String, GroupingValue> map = new HashMap<String, GroupingValue>(); Map<String, GroupingValue> map = new HashMap<String, GroupingValue>();
for (PropertyAccessorData propertyAccessor : propertyAccessors) { for (PropertyPsiDataElement propertyAccessor : propertyAccessors) {
String key = propertyKeyForGrouping(propertyAccessor); String key = propertyKeyForGrouping(propertyAccessor);
GroupingValue value = map.get(key); GroupingValue value = map.get(key);
@@ -14,18 +14,16 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.jet.lang.resolve.java; package org.jetbrains.jet.lang.resolve.java.wrapper;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiFieldWrapper; import org.jetbrains.jet.lang.resolve.java.TypeSource;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMemberWrapper;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
/** /**
* @author Stepan Koltsov * Some PSI corresponding to a property: getter, setter or field.
*/ */
public class PropertyAccessorData { public final class PropertyPsiDataElement {
@NotNull @NotNull
private final PsiMemberWrapper member; private final PsiMemberWrapper member;
@@ -39,14 +37,19 @@ public class PropertyAccessorData {
private final TypeSource receiverType; private final TypeSource receiverType;
PropertyAccessorData(@NotNull PsiMethodWrapper method, boolean getter, @NotNull TypeSource type, @Nullable TypeSource receiverType) { public PropertyPsiDataElement(
@NotNull PsiMethodWrapper method,
boolean getter,
@NotNull TypeSource type,
@Nullable TypeSource receiverType
) {
this.member = method; this.member = method;
this.type = type; this.type = type;
this.receiverType = receiverType; this.receiverType = receiverType;
this.getter = getter; this.getter = getter;
} }
PropertyAccessorData(@NotNull PsiFieldWrapper field, @NotNull TypeSource type, @Nullable TypeSource receiverType) { public PropertyPsiDataElement(@NotNull PsiFieldWrapper field, @NotNull TypeSource type, @Nullable TypeSource receiverType) {
this.member = field; this.member = field;
this.type = type; this.type = type;
this.receiverType = receiverType; this.receiverType = receiverType;