use of net.jangaroo.jooc.input.FileInputSource in project jangaroo-tools by CoreMedia.
the class ConfigClassBuilderTest method buildConfigClass.
private ConfigClass buildConfigClass(String resourceName, String module) throws URISyntaxException {
File sourceFile = new File(getClass().getResource("/" + module + "/" + resourceName).toURI());
InputSource inputSource = new FileInputSource(sourceFile, true);
CompilationUnit compilationUnit = new Jooc().doParse(inputSource, new StdOutCompileLog(), SemicolonInsertionMode.QUIRKS);
ConfigClassBuilder configClassBuilder = new ConfigClassBuilder(compilationUnit);
return configClassBuilder.buildConfigClass();
}
use of net.jangaroo.jooc.input.FileInputSource in project jangaroo-tools by CoreMedia.
the class ConfigClassRegistry method scanAsFiles.
private void scanAsFiles(Map<String, File> sourceFilesByName) {
InputSource configPackageInputSource = sourcePathInputSource.getChild(config.getConfigClassPackage().replace('.', File.separatorChar));
if (configPackageInputSource != null) {
for (InputSource source : configPackageInputSource.list()) {
File file = ((FileInputSource) source).getFile();
if (file.isFile() && file.getName().endsWith(Jooc.AS_SUFFIX)) {
try {
File sourceDir = getConfig().findSourceDir(file);
String qName = CompilerUtils.qNameFromFile(sourceDir, file);
ConfigClass actionScriptConfigClass = findActionScriptConfigClass(qName);
if (actionScriptConfigClass != null) {
addSourceConfigClass(sourceFilesByName, file, actionScriptConfigClass);
}
} catch (IOException e) {
throw new ExmlcException("could not read AS file", e);
}
}
}
}
}
use of net.jangaroo.jooc.input.FileInputSource in project jangaroo-tools by CoreMedia.
the class Jooc method run1.
private CompilationResult run1() {
InputSource sourcePathInputSource;
InputSource classPathInputSource;
try {
sourcePathInputSource = PathInputSource.fromFiles(getConfig().getSourcePath(), new String[] { "" }, true);
classPathInputSource = PathInputSource.fromFiles(getConfig().getClassPath(), new String[] { "", JOO_API_IN_JAR_DIRECTORY_PREFIX }, false);
} catch (IOException e) {
throw new CompilerError("IO Exception occurred", e);
}
setUp(sourcePathInputSource, classPathInputSource);
HashMap<File, File> outputFileMap = new HashMap<File, File>();
try {
for (File sourceFile : getConfig().getSourceFiles()) {
processSource(sourceFile);
}
CompilationUnitSinkFactory codeSinkFactory = createSinkFactory(getConfig(), false);
CompilationUnitSinkFactory apiSinkFactory = null;
if (getConfig().isGenerateApi()) {
apiSinkFactory = createSinkFactory(getConfig(), true);
}
for (CompilationUnit unit : compileQueue) {
unit.analyze(null);
if (getConfig().getPublicApiViolationsMode() != PublicApiViolationsMode.ALLOW) {
reportPublicApiViolations(unit);
}
File sourceFile = ((FileInputSource) unit.getSource()).getFile();
File outputFile = null;
// only generate JavaScript if [Native] annotation and 'native' modifier on primary declaration are not present:
if (unit.getAnnotation(NATIVE_ANNOTATION_NAME) == null && !unit.getPrimaryDeclaration().isNative()) {
outputFile = writeOutput(sourceFile, unit, codeSinkFactory, getConfig().isVerbose());
}
// always map source file, even if output file is null!
outputFileMap.put(sourceFile, outputFile);
if (getConfig().isGenerateApi()) {
writeOutput(sourceFile, unit, apiSinkFactory, getConfig().isVerbose());
}
}
int result = log.hasErrors() ? CompilationResult.RESULT_CODE_COMPILATION_FAILED : CompilationResult.RESULT_CODE_OK;
return new CompilationResultImpl(result, outputFileMap);
} catch (IOException e) {
throw new CompilerError("IO Exception occurred", e);
} finally {
tearDown();
}
}
Aggregations