Class AbstractProcessor

  • All Implemented Interfaces:
    java.lang.Cloneable, Processor
    Direct Known Subclasses:
    AbstractCompiler, AbstractLinker

    public abstract class AbstractProcessor
    extends java.lang.Object
    implements Processor, java.lang.Cloneable
    An abstract processor (compiler/linker) implementation.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DEFAULT_DISCARD_BID
      default bid for a file name that the processor recognizes but does not process and does not want to fall through to the linker
      static int DEFAULT_PROCESS_BID
      default bid for a file name that the processor desires to process
      private java.lang.String[] headerExtensions  
      private java.lang.String[] sourceExtensions  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractProcessor​(java.lang.String[] sourceExtensions, java.lang.String[] headerExtensions)  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      int bid​(java.lang.String inputFile)
      Returns the bid of the processor for the file.
      Processor changeEnvironment​(boolean newEnvironment, org.apache.tools.ant.types.Environment env)  
      protected java.lang.Object clone()  
      java.lang.String[] getHeaderExtensions()  
      abstract java.lang.String getIdentifier()
      Retrieve an identifier that identifies the specific version of the compiler.
      protected static java.lang.String getIdentifier​(java.lang.String[] command, java.lang.String fallback)
      Determines the identification of a command line processor by capture the first line of its output for a specific command.
      protected java.lang.String getOSArch()
      Gets the target operating system architecture
      protected java.lang.String getOSName()
      Gets the target operating system name
      java.lang.String[] getSourceExtensions()  
      protected boolean isDarwin()
      Returns true if the target operating system is Mac OS X or Darwin.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • DEFAULT_DISCARD_BID

        public static final int DEFAULT_DISCARD_BID
        default bid for a file name that the processor recognizes but does not process and does not want to fall through to the linker
        See Also:
        Constant Field Values
      • DEFAULT_PROCESS_BID

        public static final int DEFAULT_PROCESS_BID
        default bid for a file name that the processor desires to process
        See Also:
        Constant Field Values
      • headerExtensions

        private final java.lang.String[] headerExtensions
      • sourceExtensions

        private final java.lang.String[] sourceExtensions
    • Constructor Detail

      • AbstractProcessor

        protected AbstractProcessor​(java.lang.String[] sourceExtensions,
                                    java.lang.String[] headerExtensions)
    • Method Detail

      • getIdentifier

        protected static java.lang.String getIdentifier​(java.lang.String[] command,
                                                        java.lang.String fallback)
        Determines the identification of a command line processor by capture the first line of its output for a specific command.
        Parameters:
        command - array of command line arguments starting with executable name. For example, { "cl" }
        fallback - start of identifier if there is an error in executing the command
        Returns:
        identifier for the processor
      • bid

        public int bid​(java.lang.String inputFile)
        Returns the bid of the processor for the file.
        Specified by:
        bid in interface Processor
        Parameters:
        inputFile - filename of input file
        Returns:
        bid for the file, 0 indicates no interest, 1 indicates that the processor recognizes the file but doesn't process it (header files, for example), 100 indicates strong interest
      • changeEnvironment

        public Processor changeEnvironment​(boolean newEnvironment,
                                           org.apache.tools.ant.types.Environment env)
        Specified by:
        changeEnvironment in interface Processor
      • clone

        protected java.lang.Object clone()
                                  throws java.lang.CloneNotSupportedException
        Overrides:
        clone in class java.lang.Object
        Throws:
        java.lang.CloneNotSupportedException
      • getHeaderExtensions

        public java.lang.String[] getHeaderExtensions()
      • getIdentifier

        public abstract java.lang.String getIdentifier()
        Description copied from interface: Processor
        Retrieve an identifier that identifies the specific version of the compiler. Compilers with the same identifier should produce the same output files for the same input files and command line switches.
        Specified by:
        getIdentifier in interface Processor
      • getOSArch

        protected java.lang.String getOSArch()
        Gets the target operating system architecture
        Returns:
        String target operating system architecture
      • getOSName

        protected java.lang.String getOSName()
        Gets the target operating system name
        Returns:
        String target operating system name
      • getSourceExtensions

        public java.lang.String[] getSourceExtensions()
      • isDarwin

        protected boolean isDarwin()
        Returns true if the target operating system is Mac OS X or Darwin.
        Returns:
        boolean
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object