/* | |
* | |
* 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.io.IOException; | |
import java.io.Writer; | |
import org.apache.tools.ant.BuildException; | |
import org.apache.tools.ant.Project; | |
import org.apache.tools.ant.types.DataType; | |
import org.apache.tools.ant.types.Reference; | |
/** | |
* Version Information. (Non-functional prototype) | |
* | |
*/ | |
public class VersionInfo extends DataType { | |
/** | |
* if property. | |
*/ | |
private String ifCond; | |
/** | |
* unless property. | |
*/ | |
private String unlessCond; | |
/** | |
* extends property. | |
*/ | |
private String extendsId; | |
/** | |
* 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 description; | |
/** | |
* internal name. | |
*/ | |
private String internalName; | |
/** | |
* legal copyright. | |
* | |
*/ | |
private String legalCopyright; | |
/** | |
* legal trademark. | |
* | |
*/ | |
private String legalTrademark; | |
/** | |
* 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; | |
/** | |
* Constructor. | |
* | |
*/ | |
public VersionInfo() { | |
} | |
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 | |
// | |
} | |
/** | |
* Sets the name of a version info that this info extends. | |
* | |
* @param id | |
* id | |
*/ | |
public void setExtends(String id) { | |
extendsId = id; | |
} | |
/** | |
* 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) { | |
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); | |
} | |
/** | |
* 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) { | |
unlessCond = propName; | |
} | |
/** | |
* Gets file version. | |
* @return file version, may be null. | |
* | |
*/ | |
public String getFileversion() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getFileversion(); | |
} | |
return fileVersion; | |
} | |
/** | |
* Gets Product version. | |
* @return product version, may be null | |
*/ | |
public String getProductversion() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getProductversion(); | |
} | |
return productVersion; | |
} | |
/** | |
* Gets compatibility version. | |
* @return compatibility version, may be null | |
*/ | |
public String getCompatibilityversion() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.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() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getLanguage(); | |
} | |
return language; | |
} | |
/** | |
* Gets comments. | |
* @return comments, may be null. | |
*/ | |
public String getFilecomments() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getFilecomments(); | |
} | |
return fileComments; | |
} | |
/** | |
* Gets Company name. | |
* @return company name, may be null. | |
*/ | |
public String getCompanyname() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getCompanyname(); | |
} | |
return companyName; | |
} | |
/** | |
* Gets Description. | |
* @return description, may be null. | |
*/ | |
public String getDescription() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getDescription(); | |
} | |
return description; | |
} | |
/** | |
* Gets internal name. | |
* @return internal name, may be null. | |
*/ | |
public String getInternalname() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getInternalname(); | |
} | |
return internalName; | |
} | |
/** | |
* Gets legal copyright. | |
* @return legal copyright, may be null. | |
*/ | |
public String getLegalcopyright() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getLegalcopyright(); | |
} | |
return legalCopyright; | |
} | |
/** | |
* Gets legal trademark. | |
* @return legal trademark, may be null; | |
*/ | |
public String getLegaltrademark() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getLegaltrademark(); | |
} | |
return legalTrademark; | |
} | |
/** | |
* Gets original filename. | |
* @return original filename, may be null. | |
*/ | |
public String getOriginalfilename() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getOriginalfilename(); | |
} | |
return originalFilename; | |
} | |
/** | |
* Gets private build. | |
* @return private build, may be null. | |
*/ | |
public String getPrivatebuild() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getPrivatebuild(); | |
} | |
return privateBuild; | |
} | |
/** | |
* Gets product name. | |
* @return product name, may be null. | |
*/ | |
public String getProductname() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.getProductname(); | |
} | |
return productName; | |
} | |
/** | |
* Special build | |
* @return special build, may be null. | |
*/ | |
public String getSpecialbuild() { | |
if (isReference()) { | |
VersionInfo refVersion = (VersionInfo) | |
getCheckedRef(VersionInfo.class, | |
"VersionInfo"); | |
return refVersion.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 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 setLegaltrademark(String value) throws BuildException { | |
if (isReference()) { | |
throw tooManyAttributes(); | |
} | |
legalTrademark = 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 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; | |
} | |
/** | |
* Writes windows resource | |
* @param writer writer, may not be null. | |
* @param project project, may not be null | |
* @param executableName name of executable | |
*/ | |
public void writeResource(final Writer writer, | |
final Project p, | |
final String executableName) throws IOException { | |
// TODO: | |
} | |
} |