storm-apt/impl/src/main/java/com/turbomanage/storm/apt/StormEnvironment.java
void readIndex(Filer filer) {
		StandardLocation location = StandardLocation.SOURCE_OUTPUT;
		FileObject indexFile;
		try {
			indexFile = filer.getResource(location, "com.turbomanage.storm",
					ENV_FILE);
			logger.info("Reading index " + indexFile.toUri());
			// indexFile.openReader() not implemented on all platforms
			Reader fileReader = new InputStreamReader(indexFile.openInputStream());
			BufferedReader reader = new BufferedReader(fileReader);
			String line = reader.readLine(); // BEGIN_CONVERTERS
			line = reader.readLine();
			while (line != null && !line.startsWith(END_CONVERTERS)) {
				ConverterModel converter = ConverterModel.readFromIndex(line, logger);
				this.addConverter(converter);
				line = reader.readLine();
			}
			line = reader.readLine();
			while (line != null && line.startsWith(BEGIN_DATABASE)) {
				DatabaseModel dbModel = DatabaseModel.readFromIndex(reader, logger);
				this.addDatabase(dbModel);
				line = reader.readLine();
			}
			reader.close();
		} catch (IOException e) {
			// gulp--only way to catch not yet existing file on first run
		}
	}
void readIndex(Filer filer) {
		StandardLocation location = StandardLocation.SOURCE_OUTPUT;
		FileObject indexFile;
		try {
			indexFile = filer.getResource(location, "com.turbomanage.storm",
					ENV_FILE);
			logger.info("Reading index " + indexFile.toUri());
			// indexFile.openReader() not implemented on all platforms
			Reader fileReader = new InputStreamReader(indexFile.openInputStream());
			BufferedReader reader = new BufferedReader(fileReader);
			String line = reader.readLine(); // BEGIN_CONVERTERS
			line = reader.readLine();
			while (line != null && !line.startsWith(END_CONVERTERS)) {
				ConverterModel converter = ConverterModel.readFromIndex(line, logger);
				this.addConverter(converter);
				line = reader.readLine();
			}
			line = reader.readLine();
			while (line != null && line.startsWith(BEGIN_DATABASE)) {
				DatabaseModel dbModel = DatabaseModel.readFromIndex(reader, logger);
				this.addDatabase(dbModel);
				line = reader.readLine();
			}
			reader.close();
		} catch (IOException e) {
			// gulp--only way to catch not yet existing file on first run
		}
	}
void readIndex ( Filer filer ) { StandardLocation location = StandardLocation . SOURCE_OUTPUT ; FileObject indexFile ; try { indexFile = filer . getResource ( location , "com.turbomanage.storm" , ENV_FILE ) ; logger . info ( "Reading index " + indexFile . toUri ( ) ) ; // indexFile.openReader() not implemented on all platforms Reader fileReader = new InputStreamReader ( indexFile . openInputStream ( ) ) ; BufferedReader reader = new BufferedReader ( fileReader ) ; String line = reader . readLine ( ) ; // BEGIN_CONVERTERS line = reader . readLine ( ) ; while ( line != null && ! line . startsWith ( END_CONVERTERS ) ) { ConverterModel converter = ConverterModel . readFromIndex ( line , logger ) ; this . addConverter ( converter ) ; line = reader . readLine ( ) ; } line = reader . readLine ( ) ; while ( line != null && line . startsWith ( BEGIN_DATABASE ) ) { DatabaseModel dbModel = DatabaseModel . readFromIndex ( reader , logger ) ; this . addDatabase ( dbModel ) ; line = reader . readLine ( ) ; } reader . close ( ) ; } catch ( IOException e ) { // gulp--only way to catch not yet existing file on first run } }
Read the current model state from a file in support of incremental
compilation. This is necessary because the annotation processor has
access to only classes which have been annotated (and any resulting
generated classes on subsequent rounds), but DatabaseHelper classes
aren't available when doing incremental compilation on a new @Entity.

@see http
://stackoverflow.com/questions/10585665/how-can-i-examine-the-whole
-source-tree-with-an-annotation-processor
https://github.com/sentinelt/evo-classindex

@param Filer
used by the annotation processor
Read the current model state from a file in support of incremental compilation . This is necessary because the annotation processor has access to only classes which have been annotated ( and any resulting generated classes on subsequent rounds ) but DatabaseHelper classes aren t available when doing incremental compilation on a new @Entity .