################################################################## | |
## | |
## Licensed to the Apache Software Foundation (ASF) under one | |
## or more contributor license agreements. See the NOTICE file | |
## distributed with this work for additional information | |
## regarding copyright ownership. The ASF licenses this file | |
## to you 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. | |
## | |
################################################################## | |
## Template to create the Java class representing an ODF signature element | |
## | |
## Documentation of template development can be found in local file | |
## TemplateHelp.html. | |
## | |
#set ($element = ${signaturemodel.getElement($context)}) | |
#if ($element == "Signature") | |
#set ($NS = "http://www.w3.org/2000/09/xmldsig#") | |
#set ($PREFIX = "ds") | |
#else | |
#set ($NS = "urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0") | |
#set ($PREFIX = "dsig") | |
#end | |
###set ($NS = "${element.getNamespace()}") | |
#set ($classname = "${model.camelCase($element)}Element") | |
## | |
## Set child element and child attributes | |
#set ($children = ${element.getChildElements().withoutMultiples()}) | |
#set ($attributes = ${element.getAttributes().withoutMultiples()}) | |
## | |
## Set base class OdfElement | |
#set ($baseclassname = "OdfElement") | |
#set ($baseHasMandatoryAttr = false) | |
## | |
## ...or configured base class | |
#if (${javamodel.getBaseclassOf($element)}) | |
#set ($base = ${javamodel.getBaseclassOf($element)}) | |
#end | |
## Configured manually generated base class? | |
#if ($base == "container") | |
#set ($_specialbase = true) | |
#set ($baseclassname = "OdfContainerElementBase") | |
#set ($baseimport = "org.odftoolkit.odfdom.pkg.$baseclassname") | |
#set ($baseHasMandatoryAttr = false) | |
#end | |
## | |
## Test if this element has mandatory (non optional) attributes | |
#set ($hasMandatoryAttr = false) | |
#foreach ($attribute in $attributes) | |
#if (${element.isMandatory($attribute)}) | |
#set ($hasMandatoryAttr = true) | |
#set ($mandatoryAttr = $attribute) | |
#end | |
#end | |
## | |
## Begin Code | |
#include('copyright.txt') | |
/* | |
* This file is automatically generated. | |
* Don't edit manually. | |
*/ | |
package org.odftoolkit.odfdom.pkg.dsig; | |
## | |
## --------------------------------------------------- | |
## Imports | |
## --------------------------------------------------- | |
## | |
import org.odftoolkit.odfdom.pkg.OdfElement; | |
import org.odftoolkit.odfdom.pkg.OdfFileDom; | |
import org.odftoolkit.odfdom.pkg.OdfName; | |
## | |
## If there is a base class which is not in the current package | |
#if ($baseimport) | |
import ${baseimport}; | |
#end | |
## | |
## --------------------------------------------------- | |
## Class | |
## --------------------------------------------------- | |
## | |
/** | |
* Data signature implementation of OpenDocument element {@odf.element ${context}}. | |
* | |
#if ($anychild) | |
* This class can have any org.w3c.dom.Element child element. | |
#end | |
#if ($anyattribute) | |
* This class can have any org.w3c.dom.Attribute attribute. | |
#end | |
*/ | |
public class $classname extends $baseclassname { | |
public static final OdfName ELEMENT_NAME = OdfName.newName("${NS}", "${PREFIX}:${element}"); | |
/** | |
* Create the instance of <code>$classname</code> | |
* | |
* @param ownerDoc The type is <code>OdfFileDom</code> | |
*/ | |
public $classname(OdfFileDom ownerDoc) { | |
super(ownerDoc, ELEMENT_NAME); | |
} | |
/** | |
* Get the element name | |
* | |
* @return return <code>OdfName</code> the name of element {@odf.element ${context}}. | |
*/ | |
public OdfName getOdfName() { | |
return ELEMENT_NAME; | |
} | |
## | |
## --------------------------------------------------- | |
## Add init method if this element or the base | |
## element has mandatory attributes | |
## TODO: NO caller use this method. | |
## --------------------------------------------------- | |
## | |
## --------------------------------------------------- | |
## Attribute getters and setters | |
## --------------------------------------------------- | |
## | |
#foreach ($attr in $attributes) | |
#set($attri = ${signaturemodel.getAttribute($attr.getQName())}) | |
#set ($valueObject = "String") | |
#set ($simpleValue = "") | |
#set ($dataTypes = ${attri.getDatatypes().withoutMultiples()}) | |
#set ($valueTypes = ${javamodel.getValuetypes($dataTypes)}) | |
#foreach ($valueType in $valueTypes) | |
#set ($valueObject = $valueType) | |
#end | |
## use attri get all of the values. | |
#set($values = ${attri.getValues().withoutMultiples()}) | |
#if ($values.size() ==2 && $dataTypes.size()==0) | |
#set ($trueFlag = false) | |
#set ($falseFlag = false) | |
#foreach ($value in $values) | |
#if ($value==true) | |
#set ($trueFlag = true) | |
#end | |
#if ($value==false) | |
#set ($falseFlag = true) | |
#end | |
#end | |
#if ($trueFlag and $falseFlag) | |
#set ($hasdatatype = true) | |
#set ($valueObject = "Boolean") | |
#end | |
#end | |
#if ($valueObject != "String" && $valueObject != "Double" && $valueObject != "Integer" && $valueObject != "Boolean") | |
#set ($valueObject = "String") | |
#end | |
#if ($valueObject != "String") | |
#set ($simpleValue = ${javamodel.getPrimitiveType($valueObject)}) | |
#end | |
#if ($attr != "*") | |
#set ($attribute = ${attr.withMultiples()}) | |
#set ($aNS = ${attribute.getNamespace()}) | |
#set ($aClassname = "${signaturemodel.camelCase($attribute)}Attribute") | |
#set ($aParam = "${signaturemodel.javaCase($attribute)}Value") | |
/** | |
* Receives the value of the ODFDOM attribute representation <code>$aClassname</code> , See {@odf.attribute ${attribute.getQName()}} | |
* | |
#if (${element.isMandatory($attribute)}) | |
* Attribute is mandatory. | |
* | |
#end | |
* @return - the <code>$valueObject</code> , the value or <code>null</code>, if the attribute is not set and no default value defined. | |
*/ | |
public $valueObject get${aClassname}() { | |
$aClassname attr = ($aClassname) getOdfAttribute(${aClassname}.ATTRIBUTE_NAME); | |
if (attr != null) { | |
#if ($simpleValue!="") | |
return ${valueObject}.valueOf(attr.${simpleValue}Value()); | |
#else | |
return ${valueObject}.valueOf(attr.getValue()); | |
#end | |
} | |
#if ($odfmodel.getDefaultAttributeValue($attribute, $element)) | |
#set ($defaultValue = ${signaturemodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $element))}) | |
#set ($defaultValueSet = $odfmodel.getDefaultAttributeValues($attribute)) | |
#if ($defaultValueSet.size()>1) | |
#set ($constant = $signaturemodel.constantCase($defaultValue)) | |
#if ($valueObject == "String") | |
return ${aClassname}.DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)}; | |
#else | |
return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)}); | |
#end | |
#else | |
#if ($valueObject == "String") | |
return ${aClassname}.DEFAULT_VALUE; | |
#else | |
return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE); | |
#end | |
#end | |
#else | |
return null; | |
#end | |
} | |
/** | |
* Sets the value of ODFDOM attribute representation <code>$aClassname</code> , See {@odf.attribute ${attribute.getQName()}} | |
* | |
* @param $aParam The type is <code>$valueObject</code> | |
*/ | |
public void set${aClassname}($valueObject $aParam) { | |
$aClassname attr = new ${aClassname}((OdfFileDom) this.ownerDocument); | |
setOdfAttribute(attr); | |
#if ($valueObject == "String") | |
attr.setValue($aParam); | |
#else | |
attr.set${signaturemodel.camelCase($simpleValue)}Value($aParam.${simpleValue}Value()); | |
#end | |
} | |
#end | |
#end | |
## | |
## --------------------------------------------------- | |
## Methods for child element creation | |
## --------------------------------------------------- | |
## | |
#foreach($ch in $children) | |
#if ($ch != "*") | |
#set ($child = ${ch.withMultiples()}) | |
#set ($cClassname = "${signaturemodel.camelCase($child)}Element") | |
#set ($cVar = ${signaturemodel.javaCase($child)}) | |
#set ($ch_attributes = ${child.getAttributes().withoutMultiples()}) | |
##set has parameter flag | |
#set ($hasParams = false) | |
#foreach ($ch_attribute in $ch_attributes) | |
#if (${child.isMandatory($ch_attribute)}) | |
#set ($hasParams = true) | |
#end | |
#end | |
#if ($hasParams) | |
/** | |
* Create child element {@odf.element ${child}}. | |
* | |
#set ($seperateFlag="") | |
#set ($params="") | |
#foreach ($ch_attr in $ch_attributes) | |
#if (${child.isMandatory($ch_attr)}) | |
#set($ch_attri = ${signaturemodel.getAttribute($ch_attr.getQName())}) | |
#set ($ch_ValueObject = "String") | |
#set ($ch_SimpleValue = "") | |
#set ($ch_DataTypes = ${ch_attri.getDatatypes().withoutMultiples()}) | |
#set ($ch_ValueTypes = ${javamodel.getValuetypes($ch_DataTypes)}) | |
#foreach ($ch_ValueType in $ch_ValueTypes) | |
#set ($ch_ValueObject = $ch_ValueType) | |
#end | |
## use ch_attri get all of the values. | |
#set($ch_Values = ${ch_attri.getValues().withoutMultiples()}) | |
#if ($ch_Values.size() ==2 && $ch_DataTypes.size()==0) | |
#set ($trueFlag = false) | |
#set ($falseFlag = false) | |
#foreach ($ch_Value in $ch_Values) | |
#if ($ch_Value==true) | |
#set ($trueFlag = true) | |
#end | |
#if ($ch_Value==false) | |
#set ($falseFlag = true) | |
#end | |
#end | |
#if ($trueFlag and $falseFlag) | |
#set ($ch_Hasdatatype = true) | |
#set ($ch_ValueObject = "Boolean") | |
#end | |
#end | |
#if ($ch_ValueObject != "String" && $ch_ValueObject != "Double" && $ch_ValueObject != "Integer" && $ch_ValueObject != "Boolean") | |
#set ($ch_ValueObject = "String") | |
#end | |
#if ($ch_ValueObject != "String") | |
#set ($ch_SimpleValue = ${javamodel.getPrimitiveType($ch_ValueObject)}) | |
#end | |
#if ($ch_attr != "*") | |
#set ($attribute = ${ch_attr.withMultiples()}) | |
#set ($aNS = ${attribute.getNamespace()}) | |
#set ($aClassname = "${signaturemodel.camelCase($attribute)}Attribute") | |
#set ($aParam = "${signaturemodel.javaCase($attribute)}Value") | |
* @param $aParam the <code>$ch_ValueObject</code> value of <code>$aClassname</code>, see {@odf.attribute ${attribute.getQName()}} at specification | |
#if ($ch_SimpleValue!="") | |
#set ($params="${params}${seperateFlag}${ch_SimpleValue} ${aParam}") | |
#else | |
#set ($params="${params}${seperateFlag}${ch_ValueObject} ${aParam}") | |
#end | |
#set ($seperateFlag=", ") | |
#end | |
#end | |
#end | |
## Compare element from old and new Spec. A direct comparison is not possible (both encapsulate different RelaxNG Expressions) | |
## but we can compare by name | |
#if (!$oldelement || !${oldelement.getChildElements().containsName($child)}) | |
* Child element is new in Odf 1.2 | |
* | |
#end | |
#if (${element.isMandatory($child)}) | |
* Child element is mandatory. | |
* | |
#end | |
* @return the element {@odf.element ${child}} | |
*/ | |
public $cClassname new${cClassname}($params) { | |
$cClassname $cVar = ((OdfFileDom) this.ownerDocument).newOdfElement(${cClassname}.class); | |
#foreach ($ch_attr in $ch_attributes) | |
#if ($ch_attr != "*" && ${child.isMandatory($ch_attr)}) | |
#set ($aClassname = "${signaturemodel.camelCase($ch_attr)}Attribute") | |
#set ($aParam = "${signaturemodel.javaCase($ch_attr)}Value") | |
${cVar}.set$aClassname($aParam); | |
#end | |
#end | |
this.appendChild($cVar); | |
return $cVar; | |
} | |
#else | |
/** | |
* Create child element {@odf.element ${child}}. | |
* | |
## Compare element from old and new Spec. A direct comparison is not possible (both encapsulate different RelaxNG Expressions) | |
## but we can compare by name | |
#if (!$oldelement || !${oldelement.getChildElements().containsName($child)}) | |
* Child element is new in Odf 1.2 | |
* | |
#end | |
#if (${element.isMandatory($child)}) | |
* Child element is mandatory. | |
* | |
#end | |
* @return the element {@odf.element ${child}} | |
*/ | |
public $cClassname new${cClassname}() { | |
$cClassname $cVar = ((OdfFileDom) this.ownerDocument).newOdfElement(${cClassname}.class); | |
this.appendChild($cVar); | |
return $cVar; | |
} | |
#end | |
#end | |
#end | |
## | |
## ----------------------------------------------------- | |
## New: newTextNode | |
## ----------------------------------------------------- | |
## | |
#if ($element.canHaveText()) | |
/** | |
* Add text content. Only elements which are allowed to have text content offer this method. | |
*/ | |
public void newTextNode(String content) { | |
if (content != null && !content.equals("")) { | |
this.appendChild(this.getOwnerDocument().createTextNode(content)); | |
} | |
} | |
#end | |
} |