net.sf.antcontrib.cpptasks.VersionInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cpptasks-parallel Show documentation
Show all versions of cpptasks-parallel Show documentation
Third-party release of net.sf.antcontrib:cpptasks-parallel:1.0-beta-5-parallel-1-SNAPSHOT.
The newest version!
/*
*
* 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 java.util.Vector;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.types.DataType;
import org.apache.tools.ant.types.Reference;
/**
* Version Information.
*
* This information is applied in a platform specific manner
* to embed version information into executable images. This
* behavior is new and subject to change.
*
* On the Microsoft Windows platform, a resource is generated and added
* to the set of files to be compiled. A resource compiler must
* be specified to compile the generated file.
*
* On Unix platforms, versioninfo is currently not used.
* Future versions may append fileversion to the output file name,
* use compatibility version for -soname and possibly create
* symbolic links.
*/
public final class VersionInfo extends DataType {
/**
* if property.
*/
private String ifCond;
/**
* unless property.
*/
private String unlessCond;
/**
* extends property.
*/
private Reference extendsRef;
/**
* file version.
*
*/
private String fileVersion;
/**
* Product version.
*
*/
private String productVersion;
/**
* file language.
*
*/
private String language;
/**
* comments.
*
*/
private String fileComments;
/**
* Company name.
*
*/
private String companyName;
/**
* Description.
*
*/
private String fileDescription;
/**
* internal name.
*/
private String internalName;
/**
* legal copyright.
*
*/
private String legalCopyright;
/**
* legal trademark.
*
*/
private String legalTrademarks;
/**
* original filename.
*
*/
private String originalFilename;
/**
* private build.
*
*/
private String privateBuild;
/**
* product name.
*
*/
private String productName;
/**
* Special build
*/
private String specialBuild;
/**
* compatibility version
*
*/
private String compatibilityVersion;
/**
* prerease build.
*
*/
private Boolean prerelease;
/**
* prerease build.
*
*/
private Boolean patched;
/**
* Constructor.
*
*/
public VersionInfo() {
}
/**
* Private constructor for merge.
* @param stack list of version infos with most significant first.
*/
private VersionInfo(final Vector stack) {
VersionInfo source = null;
for(int i = stack.size() - 1; i >= 0; i--) {
source = (VersionInfo) stack.elementAt(i);
if (source.getIf() != null) {
ifCond = source.getIf();
}
if (source.getUnless() != null) {
unlessCond = source.getUnless();
}
if (source.getFileversion() != null) {
fileVersion = source.getFileversion();
}
if (source.getProductversion() != null) {
productVersion = source.getProductversion();
}
if (source.getLanguage() != null) {
language = source.getLanguage();
}
if (source.getFilecomments() != null) {
fileComments = source.getFilecomments();
}
if (source.getCompanyname() != null) {
companyName = source.getCompanyname();
}
if (source.getFiledescription() != null) {
fileDescription = source.getFiledescription();
}
if (source.getInternalname() != null) {
internalName = source.getInternalname();
}
if (source.getLegalcopyright() != null) {
legalCopyright = source.getLegalcopyright();
}
if (source.getLegaltrademarks() != null) {
legalTrademarks = source.getLegaltrademarks();
}
if (source.getOriginalfilename() != null) {
originalFilename = source.getOriginalfilename();
}
if (source.getPrivatebuild() != null) {
privateBuild = source.getPrivatebuild();
}
if (source.getProductname() != null) {
productName = source.getProductname();
}
if (source.getSpecialbuild() != null) {
specialBuild = source.getSpecialbuild();
}
if (source.getCompatibilityversion() != null) {
compatibilityVersion = source.getCompatibilityversion();
}
if (source.getPrerelease() != null) {
prerelease = source.getPrerelease();
}
if (source.getPatched() != null) {
patched = source.getPatched();
}
}
setProject(source.getProject());
}
/**
* Returns a VersionInfo that reflects any inherited version information.
* @return merged version information.
\ */
public VersionInfo merge() {
if (isReference()) {
VersionInfo refVersion = (VersionInfo)
getCheckedRef(VersionInfo.class,
"VersionInfo");
return refVersion.merge();
}
Reference currentRef = this.getExtends();
if (currentRef == null) {
return this;
}
Vector stack = new Vector(5);
stack.addElement(this);
while (currentRef != null) {
Object obj = currentRef.getReferencedObject(getProject());
if (obj instanceof VersionInfo) {
VersionInfo current = (VersionInfo) obj;
if (current.isReference()) {
current = (VersionInfo)
current.getCheckedRef(VersionInfo.class,
"VersionInfo");
}
if (stack.contains(current)) {
throw this.circularReference();
}
stack.addElement(current);
currentRef = current.getExtends();
} else {
throw new BuildException("Referenced element "
+ currentRef.getRefId() + " is not a versioninfo.");
}
}
return new VersionInfo(stack);
}
/**
* Methods is required for documentation generation, throws
* exception if called.
*
* @throws org.apache.tools.ant.BuildException if called
*/
public void execute() throws org.apache.tools.ant.BuildException {
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.
*
* @exception BuildException
* throws build exception if name is not set
*/
public final boolean isActive() throws BuildException {
return CUtil.isActive(getProject(), ifCond, unlessCond);
}
/**
* Sets an id that can be used to reference this element.
*
* @param id
* id
*/
public void setId(String id) {
//
// this is actually accomplished by a different
// mechanism, but we can document it
//
}
public Reference getExtends() {
return this.extendsRef;
}
/**
* 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.
*
* @param extendsRef
* Reference to the extended processor definition.
* @throws BuildException
* if this processor definition is a reference
*/
public void setExtends(Reference extendsRef) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
this.extendsRef = extendsRef;
}
/**
* Gets if property name.
* @return property name, may be null.
*/
public final String getIf() {
return ifCond;
}
/**
* 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 final void setIf(String propName) {
if (isReference()) {
throw tooManyAttributes();
}
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.
*
*/
public void setRefid(Reference r) throws BuildException {
super.setRefid(r);
}
/**
* Gets if property name.
* @return property name, may be null.
*/
public final String getUnless() {
return unlessCond;
}
/**
* 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 final void setUnless(String propName) {
if (isReference()) {
throw tooManyAttributes();
}
unlessCond = propName;
}
/**
* Gets file version.
* @return file version, may be null.
*
*/
public String getFileversion() {
return fileVersion;
}
/**
* Gets Product version.
* @return product version, may be null
*/
public String getProductversion() {
return productVersion;
}
/**
* Gets compatibility version.
* @return compatibility version, may be null
*/
public String getCompatibilityversion() {
return compatibilityVersion;
}
/**
* Gets file language, should be an IETF RFC 3066 identifier, for example, en-US.
* @return language, may be null.
*/
public String getLanguage() {
return language;
}
/**
* Gets comments.
* @return comments, may be null.
*/
public String getFilecomments() {
return fileComments;
}
/**
* Gets Company name.
* @return company name, may be null.
*/
public String getCompanyname() {
return companyName;
}
/**
* Gets Description.
* @return description, may be null.
*/
public String getFiledescription() {
return fileDescription;
}
/**
* Gets internal name.
* @return internal name, may be null.
*/
public String getInternalname() {
return internalName;
}
/**
* Gets legal copyright.
* @return legal copyright, may be null.
*/
public String getLegalcopyright() {
return legalCopyright;
}
/**
* Gets legal trademark.
* @return legal trademark, may be null;
*/
public String getLegaltrademarks() {
return legalTrademarks;
}
/**
* Gets original filename.
* @return original filename, may be null.
*/
public String getOriginalfilename() {
return originalFilename;
}
/**
* Gets private build.
* @return private build, may be null.
*/
public String getPrivatebuild() {
return privateBuild;
}
/**
* Gets prerelease.
* @return prerelease, may be null.
*/
public Boolean getPrerelease() {
return prerelease;
}
/**
* Gets patched.
* @return patched, may be null.
*/
public Boolean getPatched() {
return patched;
}
/**
* Gets product name.
* @return product name, may be null.
*/
public String getProductname() {
return productName;
}
/**
* Special build
* @return special build, may be null.
*/
public String getSpecialbuild() {
return specialBuild;
}
/**
* Sets file version.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setFileversion(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
fileVersion = value;
}
/**
* Sets product version.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setProductversion(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
productVersion = value;
}
/**
* Sets compatibility version.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setCompatibilityversion(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
compatibilityVersion = value;
}
/**
* Sets language.
* @param value new value, should be an IETF RFC 3066 language identifier.
* @throws BuildException if specified with refid
*/
public void setLanguage(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
language = value;
}
/**
* Sets comments.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setFilecomments(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
fileComments = value;
}
/**
* Sets file description.
* @param value new value
*/
public void setFiledescription(String value) {
if (isReference()) {
throw tooManyAttributes();
}
fileDescription = value;
}
/**
* Sets company name.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setCompanyname(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
companyName = value;
}
/**
* Sets internal name. Internal name will automatically be
* specified from build step, only set this value if
* intentionally overriding that value.
*
* @param value new value
* @throws BuildException if specified with refid
*/
public void setInternalname(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
internalName = value;
}
/**
* Sets legal copyright.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setLegalcopyright(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
legalCopyright = value;
}
/**
* Sets legal trademark.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setLegaltrademarks(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
legalTrademarks = value;
}
/**
* Sets original name. Only set this value if
* intentionally overriding the value from the build set.
*
* @param value new value
* @throws BuildException if specified with refid
*/
public void setOriginalfilename(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
originalFilename = value;
}
/**
* Sets private build.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setPrivatebuild(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
privateBuild = value;
}
/**
* Sets prerelease.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setPrerelease(boolean value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
if (value) {
prerelease = Boolean.TRUE;
} else {
prerelease = Boolean.FALSE;
}
}
/**
* Sets prerelease.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setPatched(boolean value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
if (value) {
patched = Boolean.TRUE;
} else {
patched = Boolean.FALSE;
}
}
/**
* Sets product name.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setProductname(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
productName= value;
}
/**
* Sets private build.
* @param value new value
* @throws BuildException if specified with refid
*/
public void setSpecialbuild(String value) throws BuildException {
if (isReference()) {
throw tooManyAttributes();
}
specialBuild = value;
}
}