protected JavaFileObject preferredFileObject(JavaFileObject a,JavaFileObject b){
  if (preferSource)   return (a.getKind() == JavaFileObject.Kind.SOURCE) ? a : b;
 else {
    long adate=a.getLastModified();
    long bdate=b.getLastModified();
    return (adate > bdate) ? a : b;
  }
}

protected JavaFileObject preferredFileObject ( JavaFileObject a , JavaFileObject b ) { if ( preferSource ) return ( a . getKind ( ) == JavaFileObject . Kind . SOURCE ) ? a : b ; else { long adate = a . getLastModified ( ) ; long bdate = b . getLastModified ( ) ; return ( adate > bdate ) ? a : b ; } }
implement policy to choose to derive information from a source file or a class file when both are present . may be overridden by subclasses .
