code: public static Map<String,RoboconfTypeBean> findAllTypes( File appDirectory ) {
  
  		List<File> graphFiles = new ArrayList<> ();
  		File graphDirectory = appDirectory;
  		if( graphDirectory != null
  				&& graphDirectory.exists())
  			graphFiles = Utils.listAllFiles( graphDirectory, Constants.FILE_EXT_GRAPH );
  
  		Map<String,RoboconfTypeBean> result = new HashMap<> ();
  		for( File f : graphFiles ) {
  			try {
  				FromGraphDefinition converter = new FromGraphDefinition( appDirectory, true );
  				Graphs g = converter.buildGraphs( f );
  
  				Collection<AbstractType> types = new ArrayList<> ();
  				types.addAll( ComponentHelpers.findAllComponents( g ));
  				types.addAll( g.getFacetNameToFacet().values());
  
  				for( AbstractType type : types ) {
  					RoboconfTypeBean bean = new RoboconfTypeBean(
  							type.getName(),
  							converter.getTypeAnnotations().get( type.getName()),
  							type instanceof Facet );
  
  					result.put( type.getName(), bean );
  					for( Map.Entry<String,String> entry : ComponentHelpers.findAllExportedVariables( type ).entrySet()) {
  						bean.exportedVariables.put( entry.getKey(), entry.getValue());
  					}
  				}
  
  			} catch( Exception e ) {
  				Logger logger = Logger.getLogger( CompletionUtils.class.getName());
  				Utils.logException( logger, e );
  			}
  		}
  
  		return result;
  	}
docs: Finds all the Roboconf types.
  @param appDirectory the application's directory (can be null)
  @return a non-null map of types (key = type name, value = type)