Extract method for clarification

This commit is contained in:
Andrey Breslav
2012-08-15 13:39:20 +04:00
parent e7e7188da1
commit 734a9a02ef
@@ -143,11 +143,9 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
} }
private void generateEnumClassObjectMethods(@NotNull Collection<? super FunctionDescriptor> result, @NotNull Name name) { private void generateEnumClassObjectMethods(@NotNull Collection<? super FunctionDescriptor> result, @NotNull Name name) {
DeclarationDescriptor containingDeclaration = thisDescriptor.getContainingDeclaration(); if (!isEnumClassObject()) return;
if (!(containingDeclaration instanceof ClassDescriptor)) return;
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; ClassDescriptor classDescriptor = (ClassDescriptor) thisDescriptor.getContainingDeclaration();
if (classDescriptor.getClassObjectDescriptor() != thisDescriptor) return;
if (classDescriptor.getKind() != ClassKind.ENUM_CLASS) return;
if (name.equals(DescriptorResolver.VALUES_METHOD_NAME)) { if (name.equals(DescriptorResolver.VALUES_METHOD_NAME)) {
SimpleFunctionDescriptor valuesMethod = DescriptorResolver SimpleFunctionDescriptor valuesMethod = DescriptorResolver
@@ -155,12 +153,21 @@ public class LazyClassMemberScope extends AbstractLazyMemberScope<LazyClassDescr
result.add(valuesMethod); result.add(valuesMethod);
} }
else if (name.equals(DescriptorResolver.VALUE_OF_METHOD_NAME)) { else if (name.equals(DescriptorResolver.VALUE_OF_METHOD_NAME)) {
SimpleFunctionDescriptor valueOfMethod = DescriptorResolver.createEnumClassObjectValueOfMethod(classDescriptor, SimpleFunctionDescriptor valueOfMethod = DescriptorResolver
resolveSession.getTrace()); .createEnumClassObjectValueOfMethod(classDescriptor, resolveSession.getTrace());
result.add(valueOfMethod); result.add(valueOfMethod);
} }
} }
private boolean isEnumClassObject() {
DeclarationDescriptor containingDeclaration = thisDescriptor.getContainingDeclaration();
if (!(containingDeclaration instanceof ClassDescriptor)) return false;
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
if (classDescriptor.getKind() != ClassKind.ENUM_CLASS) return false;
if (classDescriptor.getClassObjectDescriptor() != thisDescriptor) return false;
return true;
}
@NotNull @NotNull
@Override @Override
public Set<VariableDescriptor> getProperties(@NotNull Name name) { public Set<VariableDescriptor> getProperties(@NotNull Name name) {