1b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotpackage org.junit.runners.model; 2b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 3aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffinimport java.lang.reflect.Modifier; 4b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabotimport java.util.List; 5b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 6aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin/** 7aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin * Parent class for {@link FrameworkField} and {@link FrameworkMethod} 8aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin * 9aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin * @since 4.7 10aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin */ 11aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffinpublic abstract class FrameworkMember<T extends FrameworkMember<T>> implements 12aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin Annotatable { 13aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin abstract boolean isShadowedBy(T otherMember); 14b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 15aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin boolean isShadowedBy(List<T> members) { 16aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin for (T each : members) { 17aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin if (isShadowedBy(each)) { 18aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin return true; 19aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin } 20aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin } 21aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin return false; 22aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin } 23b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot 24aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin protected abstract int getModifiers(); 25aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin 26aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin /** 27aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin * Returns true if this member is static, false if not. 28aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin */ 29aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin public boolean isStatic() { 30aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin return Modifier.isStatic(getModifiers()); 31aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin } 32aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin 33aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin /** 34aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin * Returns true if this member is public, false if not. 35aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin */ 36aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin public boolean isPublic() { 37aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin return Modifier.isPublic(getModifiers()); 38aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin } 39aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin 40aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin public abstract String getName(); 41aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin 42aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin public abstract Class<?> getType(); 43aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin 44aeb93fc33cae3aadbb9b46083350ad2dc9aea645Paul Duffin public abstract Class<?> getDeclaringClass(); 45b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot} 46