Class ProcessorDef

  • All Implemented Interfaces:
    java.lang.Cloneable
    Direct Known Subclasses:
    CompilerDef, LinkerDef

    public abstract class ProcessorDef
    extends org.apache.tools.ant.types.DataType
    An abstract compiler/linker definition.
    Author:
    Curt Arnold
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected boolean newEnvironment  
      • Fields inherited from class org.apache.tools.ant.types.DataType

        checked, ref
      • Fields inherited from class org.apache.tools.ant.ProjectComponent

        description, location, project
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ProcessorDef()
      Constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addConfiguredProcessorArg​(CommandLineArgument arg)
      Adds a or
      protected void addConfiguredProcessorParam​(ProcessorParam param)
      Adds a or
      void addEnv​(org.apache.tools.ant.types.Environment.Variable var)
      Add an environment variable to the launched process.
      void addFileset​(ConditionalFileSet srcSet)
      Adds a source file set.
      protected static java.lang.Boolean booleanValueOf​(boolean val)
      Returns the equivalent Boolean object for the specified value Equivalent to Boolean.valueOf in JDK 1.4
      ProcessorConfiguration createConfiguration​(CCTask task, LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform, VersionInfo versionInfo)
      Creates a configuration
      CommandLineArgument[] getActiveProcessorArgs()
      Prepares list of processor arguments ( compilerarg, linkerarg ) that are active for the current project settings.
      ProcessorParam[] getActiveProcessorParams()
      Prepares list of processor arguments ( compilerarg, linkerarg) that are active for the current project settings.
      boolean getDebug​(ProcessorDef[] defaultProviders, int index)
      Gets boolean indicating debug build
      protected ProcessorDef[] getDefaultProviders​(ProcessorDef baseDef)
      Creates an chain of objects which provide default values in descending order of significance.
      ProcessorDef getExtends()
      Gets the ProcessorDef specified by the extends attribute
      boolean getInherit()
      Gets the inherit attribute.
      boolean getLibtool()  
      protected Processor getProcessor()
      Obtains the appropriate processor (compiler, linker)
      protected Processor getProcessor​(LinkType linkType)
      Obtains the appropriate processor (compiler, linker) based on the LinkType.
      boolean getRebuild​(ProcessorDef[] defaultProviders, int index)
      Gets a boolean value indicating whether all targets must be rebuilt regardless of dependency analysis.
      boolean hasFileSets()
      Returns true if the processor definition contains embedded file set definitions
      boolean isActive()
      Determine if this def should be used.
      void setClassname​(java.lang.String className)
      Sets the class name for the adapter.
      void setDebug​(boolean debug)
      If set true, all targets will be built for debugging.
      void setDescription​(java.lang.String desc)
      Sets a description of the current data type.
      void setExtends​(org.apache.tools.ant.types.Reference extendsRef)
      Specifies that this element extends the element with id attribute with a matching value.
      void setId​(java.lang.String id)
      Sets an id that can be used to reference this element.
      void setIf​(java.lang.String propName)
      Sets the property name for the 'if' condition.
      void setInherit​(boolean inherit)
      If inherit has the default value of true, defines, includes and other settings from the containing cc element will be inherited.
      void setLibtool​(boolean libtool)
      Set use of libtool.
      void setNewenvironment​(boolean newenv)
      Do not propagate old environment when new environment variables are specified.
      protected void setProcessor​(Processor processor)
      Sets the processor
      void setRebuild​(boolean rebuild)
      If set true, all targets will be unconditionally rebuilt.
      void setRefid​(org.apache.tools.ant.types.Reference ref)
      Specifies that this element should behave as if the content of the element with the matching id attribute was inserted at this location.
      void setUnless​(java.lang.String propName)
      Set the property name for the 'unless' condition.
      void visitFiles​(FileVisitor visitor)
      This method calls the FileVistor's visit function for every file in the processors definition
      • Methods inherited from class org.apache.tools.ant.types.DataType

        checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, tooManyAttributes, toString
      • Methods inherited from class org.apache.tools.ant.ProjectComponent

        getDescription, getLocation, getProject, log, log, setLocation, setProject
      • Methods inherited from class java.lang.Object

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

      • newEnvironment

        protected boolean newEnvironment
    • Constructor Detail

      • ProcessorDef

        protected ProcessorDef()
                        throws java.lang.NullPointerException
        Constructor
        Throws:
        java.lang.NullPointerException
    • Method Detail

      • booleanValueOf

        protected static java.lang.Boolean booleanValueOf​(boolean val)
        Returns the equivalent Boolean object for the specified value Equivalent to Boolean.valueOf in JDK 1.4
        Parameters:
        val - boolean value
        Returns:
        Boolean.TRUE or Boolean.FALSE
      • addConfiguredProcessorArg

        protected void addConfiguredProcessorArg​(CommandLineArgument arg)
                                          throws java.lang.NullPointerException,
                                                 org.apache.tools.ant.BuildException
        Adds a or
        Parameters:
        arg - command line argument, must not be null
        Throws:
        java.lang.NullPointerException - if arg is null
        org.apache.tools.ant.BuildException - if this definition is a reference
      • addConfiguredProcessorParam

        protected void addConfiguredProcessorParam​(ProcessorParam param)
                                            throws java.lang.NullPointerException,
                                                   org.apache.tools.ant.BuildException
        Adds a or
        Parameters:
        param - command line argument, must not be null
        Throws:
        java.lang.NullPointerException - if arg is null
        org.apache.tools.ant.BuildException - if this definition is a reference
      • addEnv

        public void addEnv​(org.apache.tools.ant.types.Environment.Variable var)
        Add an environment variable to the launched process.
      • addFileset

        public void addFileset​(ConditionalFileSet srcSet)
                        throws org.apache.tools.ant.BuildException
        Adds a source file set. Files in these set will be processed by this configuration and will not participate in the auction.
        Parameters:
        srcSet - Fileset identifying files that should be processed by this processor
        Throws:
        org.apache.tools.ant.BuildException - if processor definition is a reference
      • getActiveProcessorArgs

        public CommandLineArgument[] getActiveProcessorArgs()
        Prepares list of processor arguments ( compilerarg, linkerarg ) that are active for the current project settings.
        Returns:
        active compiler arguments
      • getActiveProcessorParams

        public ProcessorParam[] getActiveProcessorParams()
        Prepares list of processor arguments ( compilerarg, linkerarg) that are active for the current project settings.
        Returns:
        active compiler arguments
      • getDebug

        public boolean getDebug​(ProcessorDef[] defaultProviders,
                                int index)
        Gets boolean indicating debug build
        Parameters:
        defaultProviders - array of ProcessorDef's in descending priority
        index - index to first element in array that should be considered
        Returns:
        if true, built targets for debugging
      • getDefaultProviders

        protected final ProcessorDef[] getDefaultProviders​(ProcessorDef baseDef)
        Creates an chain of objects which provide default values in descending order of significance.
        Parameters:
        baseDef - corresponding ProcessorDef from CCTask, will be last element in array unless inherit = false
        Returns:
        default provider array
      • getExtends

        public ProcessorDef getExtends()
                                throws org.apache.tools.ant.BuildException
        Gets the ProcessorDef specified by the extends attribute
        Returns:
        Base ProcessorDef, null if extends is not specified
        Throws:
        org.apache.tools.ant.BuildException - if reference is not same type object
      • getInherit

        public final boolean getInherit()
        Gets the inherit attribute. If the inherit value is true, this processor definition will inherit default values from the containing cc element.
        Returns:
        if true then properties from the containing element are used.
      • getLibtool

        public boolean getLibtool()
      • getProcessor

        protected Processor getProcessor()
        Obtains the appropriate processor (compiler, linker)
        Returns:
        processor
      • getProcessor

        protected Processor getProcessor​(LinkType linkType)
        Obtains the appropriate processor (compiler, linker) based on the LinkType.
        Returns:
        processor
      • getRebuild

        public boolean getRebuild​(ProcessorDef[] defaultProviders,
                                  int index)
        Gets a boolean value indicating whether all targets must be rebuilt regardless of dependency analysis.
        Parameters:
        defaultProviders - array of ProcessorDef's in descending priority
        index - index to first element in array that should be considered
        Returns:
        true if all targets should be rebuilt.
      • hasFileSets

        public boolean hasFileSets()
        Returns true if the processor definition contains embedded file set definitions
        Returns:
        true if processor definition contains embedded filesets
      • isActive

        public boolean isActive()
                         throws org.apache.tools.ant.BuildException,
                                java.lang.IllegalStateException
        Determine if this def should be used. Definition will be active if the "if" variable (if specified) is set and the "unless" variable (if specified) is not set and that all reference or extended definitions are active
        Returns:
        true if processor is active
        Throws:
        java.lang.IllegalStateException - if not properly initialized
        org.apache.tools.ant.BuildException - if "if" or "unless" variable contains suspicious values "false" or "no" which indicates possible confusion
      • setClassname

        public void setClassname​(java.lang.String className)
                          throws org.apache.tools.ant.BuildException
        Sets the class name for the adapter. Use the "name" attribute when the tool is supported.
        Parameters:
        className - full class name
        Throws:
        org.apache.tools.ant.BuildException
      • setDebug

        public void setDebug​(boolean debug)
                      throws org.apache.tools.ant.BuildException
        If set true, all targets will be built for debugging.
        Parameters:
        debug - true if targets should be built for debugging
        Throws:
        org.apache.tools.ant.BuildException - if processor definition is a reference
      • setDescription

        public void setDescription​(java.lang.String desc)
        Sets a description of the current data type.
        Overrides:
        setDescription in class org.apache.tools.ant.ProjectComponent
      • setExtends

        public void setExtends​(org.apache.tools.ant.types.Reference extendsRef)
                        throws org.apache.tools.ant.BuildException
        Specifies that this element extends the element with id attribute with a matching value. The configuration will be constructed from the settings of this element, element referenced by extends, and the containing cc element.
        Parameters:
        extendsRef - Reference to the extended processor definition.
        Throws:
        org.apache.tools.ant.BuildException - if this processor definition is a reference
      • setId

        public void setId​(java.lang.String id)
        Sets an id that can be used to reference this element.
        Parameters:
        id - id
      • setIf

        public void setIf​(java.lang.String propName)
        Sets the property name for the 'if' condition. The configuration will be ignored unless the property is defined. The value of the property is insignificant, but values that would imply misinterpretation ("false", "no") will throw an exception when evaluated.
        Parameters:
        propName - name of property
      • setInherit

        public void setInherit​(boolean inherit)
                        throws org.apache.tools.ant.BuildException
        If inherit has the default value of true, defines, includes and other settings from the containing cc element will be inherited.
        Parameters:
        inherit - new value
        Throws:
        org.apache.tools.ant.BuildException - if processor definition is a reference
      • setLibtool

        public void setLibtool​(boolean libtool)
        Set use of libtool. If set to true, the "libtool " will be prepended to the command line
        Parameters:
        libtool - If true, use libtool.
      • setNewenvironment

        public void setNewenvironment​(boolean newenv)
        Do not propagate old environment when new environment variables are specified.
      • setProcessor

        protected void setProcessor​(Processor processor)
                             throws org.apache.tools.ant.BuildException,
                                    java.lang.NullPointerException
        Sets the processor
        Parameters:
        processor - processor, may not be null.
        Throws:
        org.apache.tools.ant.BuildException - if ProcessorDef is a reference
        java.lang.NullPointerException - if processor is null
      • setRebuild

        public void setRebuild​(boolean rebuild)
                        throws org.apache.tools.ant.BuildException
        If set true, all targets will be unconditionally rebuilt.
        Parameters:
        rebuild - if true, rebuild all targets.
        Throws:
        org.apache.tools.ant.BuildException - if processor definition is a reference
      • setRefid

        public void setRefid​(org.apache.tools.ant.types.Reference ref)
        Specifies that this element should behave as if the content of the element with the matching id attribute was inserted at this location. If specified, no other attributes or child content should be specified, other than "if", "unless" and "description".
        Overrides:
        setRefid in class org.apache.tools.ant.types.DataType
        Parameters:
        ref - Reference to other element
      • setUnless

        public void setUnless​(java.lang.String propName)
        Set the property name for the 'unless' condition. If named property is set, the configuration will be ignored. The value of the property is insignificant, but values that would imply misinterpretation ("false", "no") of the behavior will throw an exception when evaluated.
        Parameters:
        propName - name of property
      • visitFiles

        public void visitFiles​(FileVisitor visitor)
        This method calls the FileVistor's visit function for every file in the processors definition
        Parameters:
        visitor - object whose visit method is called for every file