frontend: optimize DescriptorPredicate.asNamePredicate

This commit is contained in:
Stepan Koltsov
2012-06-17 05:55:24 +04:00
parent 9b13a308f8
commit 554a54bcc5
@@ -37,6 +37,10 @@ public abstract class DescriptorPredicate {
public abstract boolean includeName(@NotNull Name name);
public boolean includeAnyName() {
return includeAll();
}
public enum DescriptorKind {
CLASS,
CALLABLE_MEMBER,
@@ -175,6 +179,11 @@ public abstract class DescriptorPredicate {
return true;
}
@Override
public boolean includeAnyName() {
return true;
}
@Override
public boolean includeExtension(boolean extension) {
return true;
@@ -219,6 +228,11 @@ public abstract class DescriptorPredicate {
public boolean includeName(@NotNull Name name) {
return required.matches(name);
}
@Override
public boolean includeAnyName() {
return false;
}
}
public static DescriptorPredicate callableMembers(@NotNull NamePredicate required) {
@@ -293,12 +307,17 @@ public abstract class DescriptorPredicate {
}
public NamePredicate asNamePredicate() {
return new NamePredicate() {
@Override
public boolean matches(@NotNull Name name) {
return includeName(name);
}
};
if (includeAnyName()) {
return NamePredicate.all();
}
else {
return new NamePredicate() {
@Override
public boolean matches(@NotNull Name name) {
return includeName(name);
}
};
}
}
}