in org.eclipse.sisu.inject/src/org/eclipse/sisu/bean/LifecycleBuilder.java [117:139]
private boolean isOverridden( final Method method )
{
// walk back down the cached hierarchy
final String name = method.getName();
for ( int i = hierarchy.size() - 1; i >= 0; i-- )
{
for ( final Method m : hierarchy.get( i ).getDeclaredMethods() )
{
// method with same name, void return, and no parameters
if ( name.equals( m.getName() ) && isCandidateMethod( m ) )
{
final int modifiers = m.getModifiers();
if ( Modifier.isPublic( modifiers ) || Modifier.isProtected( modifiers )
|| ( !Modifier.isPrivate( modifiers ) && samePackage( method, m ) ) )
{
return true;
}
break; // can't have two candidates in same class, so proceed to subclass
}
}
}
return false;
}