// Generate code
Map<String, RegisteredCode> registeredCodes = new HashMap<String,RegisteredCode>();
for( RegisteredApi api : this.registry.getApis() ) {
String apiFile = api.getApiFile();
String fullApiFileName = api.getFullApiFileName();
RegisteredCode code = registeredCodes.get( apiFile );
if( code == null ) {
code = new RegisteredCode( apiFile, fullApiFileName, minify, debug );
registeredCodes.put( apiFile, code);
}
ApiCodeGenerator generator = new ApiCodeGenerator( getGlobalConfiguration(), api );
generator.appendCode(code.getDebugCodeBuilder(), false);
generator.appendCode(code.getNonCommentsCodeBuilder(), true);
}
// Return source-code pairs!
for( Map.Entry<String, RegisteredCode> entry : registeredCodes.entrySet()) {
String sourceName = entry.getKey();
RegisteredCode code = entry.getValue();
// Return source name-code pairs!
String debugSourceName = getDebugFileName(sourceName);
this.registry.addSource(sourceName, code.getCode());
this.registry.addSource(debugSourceName, code.getDebugCode());
if( minify ) {
String minifiedSourceName = Minifier.getMinifiedFileName(sourceName);
this.registry.addSource( minifiedSourceName, code.getMinifiedCode());
}
// Save files, if needed
if( saveApiFiles ) {
if( logger.isInfoEnabled()) {
logger.info( "Creating source files for APIs...");
}
String defaultFileName = code.getFullApiFileName();
String debugFileName = getDebugFileName(defaultFileName);
String minifiedFileName = Minifier.getMinifiedFileName(defaultFileName);
updateFile( debugFileName, code.getDebugCode() );
updateFile( defaultFileName, code.getCode() );
if( minify ) {
updateFile( minifiedFileName, code.getMinifiedCode() );
}
else {
deleteFile( minifiedFileName );
}
}