Class AbstractTranslator

java.lang.Object
org.codehaus.mojo.idlj.AbstractTranslator
All Implemented Interfaces:
CompilerTranslator
Direct Known Subclasses:
IdljTranslator, JacorbTranslator

abstract class AbstractTranslator extends Object implements CompilerTranslator
Shared capabilities for translators.
Version:
$Id: AbstractIDLJMojo.java 9189 2009-03-10 21:47:46Z aheritier $
  • Field Details

    • debug

      private boolean debug
      enable/disable debug messages
    • failOnError

      private boolean failOnError
      Set to true to fail the build if an error occur while compiling the IDL.
    • log

      private org.apache.maven.plugin.logging.Log log
      the Log that will used for the messages
    • classLoaderFacade

      private static AbstractTranslator.ClassLoaderFacade classLoaderFacade
    • fork

      private static boolean fork
      Determines if the compiler can fork a process to run. Not all compilers support this.
  • Constructor Details

    • AbstractTranslator

      AbstractTranslator()
  • Method Details

    • isDebug

      public boolean isDebug()
      Returns:
      the debug
    • setDebug

      public void setDebug(boolean debug)
      Description copied from interface: CompilerTranslator
      Enable/disable debug messages.
      Specified by:
      setDebug in interface CompilerTranslator
      Parameters:
      debug - the debug to set
    • getLog

      org.apache.maven.plugin.logging.Log getLog()
      Returns:
      the log
    • setLog

      public void setLog(org.apache.maven.plugin.logging.Log log)
      Description copied from interface: CompilerTranslator
      The Log that will used for the messages
      Specified by:
      setLog in interface CompilerTranslator
      Parameters:
      log - the log to set
    • isFailOnError

      boolean isFailOnError()
      Returns:
      the failOnError
    • setFailOnError

      public void setFailOnError(boolean failOnError)
      Description copied from interface: CompilerTranslator
      Set to true to fail the build if an error occur while compiling the IDL.
      Specified by:
      setFailOnError in interface CompilerTranslator
      Parameters:
      failOnError - the failOnError to set
    • isFork

      static boolean isFork()
      Returns true if the translator is allowed to create a new forked process.
      Returns:
      true if forking is permitted
    • setClassLoaderFacade

      static void setClassLoaderFacade(AbstractTranslator.ClassLoaderFacade classLoaderFacade)
      Specifies the implementation of the classloader facade to use
      Parameters:
      classLoaderFacade - a wrapper for class loading.
    • getClassLoaderFacade

      static AbstractTranslator.ClassLoaderFacade getClassLoaderFacade()
      Returns the object to use for classloading.
      Returns:
      the appropriate loader facade
    • invokeCompilerInProcess

      void invokeCompilerInProcess(Class<?> compilerClass, List<String> args) throws org.apache.maven.plugin.MojoExecutionException
      Invokes the configured compiler and throws an exception if anything goes wrong
      Parameters:
      compilerClass - the class representing the compiler to invoke
      args - the arguments to pass to the compiler
      Throws:
      org.apache.maven.plugin.MojoExecutionException - if any error occurs
    • runCompilerAndRecordOutput

      private int runCompilerAndRecordOutput(Class<?> compilerClass, String[] arguments, ByteArrayOutputStream err, ByteArrayOutputStream out) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • runCompiler

      protected abstract int runCompiler(Class<?> compilerClass, String... arguments) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
      Runs the IDL compiler
      Parameters:
      compilerClass - the class which implements the compiler
      arguments - the arguments to pass to the compiler
      Returns:
      the return status (a non-zero value indicates an error)
      Throws:
      NoSuchMethodException - if the method which should run the compiler does not exist
      IllegalAccessException - if no constructor is available
      InvocationTargetException - if an error occurs while invoking the compiler
    • isCompilationFailed

      private boolean isCompilationFailed(ByteArrayOutputStream err, int exitCode)
    • hasErrors

      private boolean hasErrors(ByteArrayOutputStream err)
    • logOutputMessages

      private void logOutputMessages(ByteArrayOutputStream err, ByteArrayOutputStream out)
    • isNotEmpty

      private boolean isNotEmpty(ByteArrayOutputStream outputStream)
    • getCommandLine

      private String getCommandLine(Class<?> compilerClass, String[] arguments)