Search in sources :

Example 1 with CompilationUnitSinkFactory

use of net.jangaroo.jooc.backend.CompilationUnitSinkFactory in project jangaroo-tools by CoreMedia.

the class Jooc method createSinkFactory.

private CompilationUnitSinkFactory createSinkFactory(JoocConfiguration config, final boolean generateActionScriptApi) {
    CompilationUnitSinkFactory codeSinkFactory;
    if (!generateActionScriptApi && config.isMergeOutput()) {
        codeSinkFactory = new MergedOutputCompilationUnitSinkFactory(config, config.getOutputFile());
    } else {
        File outputDirectory = generateActionScriptApi ? config.getApiOutputDirectory() : config.getOutputDirectory();
        final String suffix = generateActionScriptApi ? AS_SUFFIX : OUTPUT_FILE_SUFFIX;
        codeSinkFactory = new SingleFileCompilationUnitSinkFactory(config, outputDirectory, generateActionScriptApi, suffix);
    }
    return codeSinkFactory;
}
Also used : SingleFileCompilationUnitSinkFactory(net.jangaroo.jooc.backend.SingleFileCompilationUnitSinkFactory) SingleFileCompilationUnitSinkFactory(net.jangaroo.jooc.backend.SingleFileCompilationUnitSinkFactory) CompilationUnitSinkFactory(net.jangaroo.jooc.backend.CompilationUnitSinkFactory) MergedOutputCompilationUnitSinkFactory(net.jangaroo.jooc.backend.MergedOutputCompilationUnitSinkFactory) MergedOutputCompilationUnitSinkFactory(net.jangaroo.jooc.backend.MergedOutputCompilationUnitSinkFactory) File(java.io.File)

Example 2 with CompilationUnitSinkFactory

use of net.jangaroo.jooc.backend.CompilationUnitSinkFactory 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();
    }
}
Also used : CompilationUnit(net.jangaroo.jooc.ast.CompilationUnit) PathInputSource(net.jangaroo.jooc.input.PathInputSource) InputSource(net.jangaroo.jooc.input.InputSource) FileInputSource(net.jangaroo.jooc.input.FileInputSource) ZipEntryInputSource(net.jangaroo.jooc.input.ZipEntryInputSource) FileInputSource(net.jangaroo.jooc.input.FileInputSource) SingleFileCompilationUnitSinkFactory(net.jangaroo.jooc.backend.SingleFileCompilationUnitSinkFactory) CompilationUnitSinkFactory(net.jangaroo.jooc.backend.CompilationUnitSinkFactory) MergedOutputCompilationUnitSinkFactory(net.jangaroo.jooc.backend.MergedOutputCompilationUnitSinkFactory) HashMap(java.util.HashMap) IOException(java.io.IOException) File(java.io.File)

Aggregations

File (java.io.File)2 CompilationUnitSinkFactory (net.jangaroo.jooc.backend.CompilationUnitSinkFactory)2 MergedOutputCompilationUnitSinkFactory (net.jangaroo.jooc.backend.MergedOutputCompilationUnitSinkFactory)2 SingleFileCompilationUnitSinkFactory (net.jangaroo.jooc.backend.SingleFileCompilationUnitSinkFactory)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 CompilationUnit (net.jangaroo.jooc.ast.CompilationUnit)1 FileInputSource (net.jangaroo.jooc.input.FileInputSource)1 InputSource (net.jangaroo.jooc.input.InputSource)1 PathInputSource (net.jangaroo.jooc.input.PathInputSource)1 ZipEntryInputSource (net.jangaroo.jooc.input.ZipEntryInputSource)1