diff options
Diffstat (limited to 'src/main/java/net/sf/antcontrib/cpptasks/TargetDef.java')
-rw-r--r-- | src/main/java/net/sf/antcontrib/cpptasks/TargetDef.java | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/TargetDef.java b/src/main/java/net/sf/antcontrib/cpptasks/TargetDef.java new file mode 100644 index 0000000..70263ad --- /dev/null +++ b/src/main/java/net/sf/antcontrib/cpptasks/TargetDef.java @@ -0,0 +1,228 @@ +/* + * + * Copyright 2004 The Ant-Contrib project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package net.sf.antcontrib.cpptasks; + +import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.Reference; + +/** + * Information on the execution platforms for the generated code. + * (Non-functional prototype) + * + */ +public final class TargetDef + extends DataType { + /** + * if property. + */ + private String ifCond; + + /** + * unless property. + */ + private String unlessCond; + + /** + * cpu. + * + */ + private CPUEnum cpu; + + /** + * architecture. + * + */ + private ArchEnum arch; + + /** + * OS Family. + * + */ + private OSFamilyEnum osFamily; + + /** + * Constructor. + * + */ + public TargetDef() { + } + + /** + * Bogus method required for documentation generation. + */ + public void execute() { + throw new org.apache.tools.ant.BuildException( + "Not an actual task, but looks like one for documentation purposes"); + } + + /** + * Returns true if the define's if and unless conditions (if any) are + * satisfied. + * @return true if active + */ + public boolean isActive() { + return CUtil.isActive(getProject(), ifCond, unlessCond); + } + + /** + * Sets a description of the current data type. + * @param desc description + */ + public void setDescription(final String desc) { + super.setDescription(desc); + } + + /** + * Sets an id that can be used to reference this element. + * + * @param id + * id + */ + public void setId(final String id) { + // + // this is actually accomplished by a different + // mechanism, but we can document it + // + } + + /** + * Sets the property name for the 'if' condition. + * + * The define 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. + * + * @param propName + * property name + */ + public void setIf(final String propName) { + ifCond = propName; + } + + /** + * 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 should be specified. + * @param r id of referenced target + */ + public void setRefid(final Reference r) { + super.setRefid(r); + } + + /** + * Set the property name for the 'unless' condition. + * + * If named property is set, the define 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. + * + * @param propName + * name of property + */ + public void setUnless(final String propName) { + unlessCond = propName; + } + + /** + * Gets cpu. + * @return cpu, may be null. + * + */ + public CPUEnum getCpu() { + if (isReference()) { + TargetDef refPlatform = (TargetDef) + getCheckedRef(TargetDef.class, + "TargetDef"); + return refPlatform.getCpu(); + } + return cpu; + } + + /** + * Gets arch. + * @return arch, may be null. + * + */ + public ArchEnum getArch() { + if (isReference()) { + TargetDef refPlatform = (TargetDef) + getCheckedRef(TargetDef.class, + "TargetDef"); + return refPlatform.getArch(); + } + return arch; + } + + /** + * Gets operating system family. + * @return os family, may be null. + * + */ + public OSFamilyEnum getOsfamily() { + if (isReference()) { + TargetDef refPlatform = (TargetDef) + getCheckedRef(TargetDef.class, + "TargetDef"); + return refPlatform.getOsfamily(); + } + return osFamily; + } + + /** + * Sets preferred cpu, but does not use cpu specific instructions. + * @param value new value + */ + public void setCpu(final CPUEnum value) { + if (isReference()) { + throw tooManyAttributes(); + } + cpu = value; + } + + /** + * Sets cpu architecture, compiler may use cpu specific instructions. + * @param value new value + */ + public void setArch(final ArchEnum value) { + if (isReference()) { + throw tooManyAttributes(); + } + if (cpu != null) { + throw tooManyAttributes(); + } + arch = value; + } + + /** + * Sets operating system family. + * @param value new value + */ + public void setOsfamily(final OSFamilyEnum value) { + if (isReference()) { + throw tooManyAttributes(); + } + if (cpu != null) { + throw tooManyAttributes(); + } + osFamily = value; + } + +} |