All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.jangaroo.jooc.backend.AbstractCompilationUnitSinkFactory Maven / Gradle / Ivy

There is a newer version: 4.1.17
Show newest version
package net.jangaroo.jooc.backend;

import net.jangaroo.jooc.JangarooParser;
import net.jangaroo.jooc.ast.IdeDeclaration;
import net.jangaroo.jooc.ast.PackageDeclaration;
import net.jangaroo.jooc.config.JoocOptions;

import java.io.File;

/**
 * Abstract base class for merged and single file compilation unit sink factories.
 */
public abstract class AbstractCompilationUnitSinkFactory implements CompilationUnitSinkFactory {
  protected File outputDir = null;
  JoocOptions options;

  public AbstractCompilationUnitSinkFactory(JoocOptions options, File outputDir) {
    this.outputDir = outputDir;
    this.options = options;
  }

  public File getOutputDir() {
    return outputDir;
  }

  public JoocOptions getOptions() {
    return options;
  }

  protected void createOutputDirs(File outputFile) {
    File parentDir = outputFile.getAbsoluteFile().getParentFile();
    if (!parentDir.exists() && !parentDir.mkdirs()) {
      throw JangarooParser.error("cannot create directories '" + parentDir.getAbsolutePath() + "'", parentDir);
    }
  }

  public abstract CompilationUnitSink createSink(PackageDeclaration packageDeclaration,
                                                 IdeDeclaration primaryDeclaration, File sourceFile,
                                                 boolean verbose);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy