code: public static File findInstanceResourcesDirectory( File applicationFilesDirectory, Component component ) {
  
  		File root = new File( applicationFilesDirectory, Constants.PROJECT_DIR_GRAPH );
  		File result = new File( "No recipe directory." );
  		Set<Component> alreadyChecked = new HashSet<> ();
  		for( Component c = component; c != null; c = c.getExtendedComponent()) {
  			// Prevent infinite loops for exotic cases
  			if( alreadyChecked.contains( c ))
  				break;
  
  			alreadyChecked.add( c );
  			if(( result = new File( root, c.getName())).exists())
  				break;
  		}
  
  		return result;
  	}
docs: Finds the resource directory for an instance.
  <p>
  The resource directory may be the one of another component.
  This is the case when a component extends another component.
  </p>
  <p>
  An extending component can override the resource directory.
  </p>
  
  @param applicationFilesDirectory the application's directory
  @param component a component (may be null)
  @return a non-null file (that may not exist)