incubator-odf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From devin...@apache.org
Subject svn commit: r1244419 [2/2] - in /incubator/odf/trunk/generator: schema2template-maven-plugin/src/main/java/org/odftoolkit/odfdom/schema2template_maven_plugin/ schema2template/ schema2template/src/main/java/schema2template/example/odf/ schema2template/s...
Date Wed, 15 Feb 2012 09:43:11 GMT
Added: incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
URL: http://svn.apache.org/viewvc/incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm?rev=1244419&view=auto
==============================================================================
--- incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
(added)
+++ incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
Wed Feb 15 09:43:09 2012
@@ -0,0 +1,385 @@
+##################################################################
+## 
+## 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 list of manifest artefacts which are to be generated
+##
+## Documentation of template development can be found in local file
+## TemplateHelp.html.
+##
+## Returns PuzzleComponent covering a PuzzlePiece or PuzzlePieceSet dependent if attribute
is multiple times defined
+#set($attribute = $manifestmodel.getAttribute($context))
+#set ($NS = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")
+#set($NS = ${attribute.getNamespace()})
+#set($localname = ${manifestmodel.extractLocalname($attribute)})
+#set($classname = "${manifestmodel.camelCase($attribute)}Attribute")
+#set ($valueobject = "String")
+##
+#set($datatypes = ${attribute.getDatatypes().withoutMultiples()})
+#if ($datatypes.size() > 0)
+#set ($hasdatatype = true)
+#else
+#set ($hasdatatype = false)
+#end
+##
+##2DO: Svante - getValues() vs. getValueLiterals() - only literals / constants for attribute
values are taken
+#set($values = ${attribute.getValues().withoutMultiples()})
+#if ($values.size() > 0)
+#if ($values.size() ==2 && $hasdatatype == false)
+#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
+#set ($enum = true)
+#if ($valueobject == "Boolean")
+#set ($enum = false)
+#end
+#else
+#set ($enum = false)
+#end
+##
+## Check whether the attribute has default value.
+##
+#set ($hasDefaultValue = false)
+#foreach ($parent in ${attribute.getParents().withoutMultiples()})
+#if (${odfmodel.getDefaultAttributeValue($attribute, $parent)})
+#set ($hasDefaultValue = true)
+#end
+#end
+##
+#set ($defaultValueSet = $odfmodel.getDefaultAttributeValues($attribute))
+#if ($hasDefaultValue and $defaultValueSet.size() == 1)
+#foreach ($value in $defaultValueSet)
+#set ($uniqueDefaultValue = $value)
+#end
+#end
+##
+#include('copyright.txt')
+/*
+ * This file is automatically generated.
+ * Don't edit manually.
+ */
+package org.odftoolkit.odfdom.pkg.manifest;
+
+import org.odftoolkit.odfdom.pkg.OdfAttribute;
+#if ($hasDefaultValue)
+import org.odftoolkit.odfdom.pkg.OdfElement;
+#end
+import org.odftoolkit.odfdom.pkg.OdfFileDom;
+import org.odftoolkit.odfdom.pkg.OdfName;
+
+#if ($hasDefaultValue and $defaultValueSet.size()>1)
+#foreach ($parent in ${attribute.getParents().withoutMultiples()})
+#if ($odfmodel.getDefaultAttributeValue($attribute, $parent))
+import org.odftoolkit.odfdom.pkg.${parent.getNamespace()}.${manifestmodel.camelCase($parent)}Element;
+#end
+#end
+#end
+/**
+ * Manifest implementation of OpenDocument attribute  {@odf.attribute ${attribute.getQName()}}.
+ *
+ */
+public class $classname extends OdfAttribute {
+
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("${NS}", "manifest:${attribute}");
+#if ($hasDefaultValue)
+#if ($defaultValueSet.size()>1)
+#foreach ($defaultValue in $defaultValueSet)
+#set ($constant = $manifestmodel.constantCase($defaultValue))
+#if (($defaultValue=="true" or $defaultValue=="false") and $enum == false)
+	public static final String DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)}= "$defaultValue";
+#else
+	public static final String DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)}=	Value.${manifestmodel.escapeKeyword($constant)}.toString();
+#end
+#end
+#else
+#if ($uniqueDefaultValue==""")
+	public static final String DEFAULT_VALUE = "\${uniqueDefaultValue}";
+#else
+	public static final String DEFAULT_VALUE = "$uniqueDefaultValue";
+#end
+#end
+#end
+
+	/**
+	 * Create the instance of OpenDocument attribute {@odf.attribute ${attribute}}.
+	 *
+	 * @param ownerDocument       The type is <code>OdfFileDom</code>
+	 */
+	public $classname(OdfFileDom ownerDocument) {
+		super(ownerDocument, ATTRIBUTE_NAME);
+	}
+
+	/**
+	 * Returns the attribute name.
+	 *
+	 * @return the <code>OdfName</code> for {@odf.attribute ${attribute}}.
+	 */
+	@Override
+	public OdfName getOdfName() {
+		return ATTRIBUTE_NAME;
+	}
+
+	/**
+	 * @return Returns the name of this attribute.
+	 */
+	@Override
+	public String getName() {
+		return ATTRIBUTE_NAME.getLocalName();
+	}
+##
+#if ($enum)
+
+	/**
+	 * The value set of {@odf.attribute ${attribute}}.
+	 */
+	public enum Value {
+#set ($separator="		")
+#foreach($value in $values)
+#if (${value.toString().length()} == 1)
+#set ($constant = $value)
+#else
+#set ($constant = $manifestmodel.constantCase($value))
+#end${separator}${manifestmodel.escapeKeyword($constant)}("${manifestmodel.escapeLiteral($value)}")#set
($separator=", ")
+#end ;
+
+		private String mValue;
+
+		Value(String value) {
+			mValue = value;
+		}
+
+		@Override
+		public String toString() {
+			return mValue;
+		}
+
+		public static Value enumValueOf(String value) {
+			for(Value aIter : values()) {
+				if (value.equals(aIter.toString())) {
+				return aIter;
+				}
+			}
+			return null;
+		}
+	}
+
+	/**
+	 * @param attrValue The <code>Enum</code> value of the attribute.
+	 */
+	public void setEnumValue(Value attrValue) {
+		setValue(attrValue.toString());
+	}
+
+	/**
+	 * @return Returns the <code>Enum</code> value of the attribute
+	 */
+	public Value getEnumValue() {
+		return Value.enumValueOf(this.getValue());
+	}
+#end
+##
+## Handle Non-String-Attributes
+#set ($valuetypes = ${javamodel.getValuetypes($datatypes)})
+#if ($valueobject != "Boolean")
+#foreach ($valuetype in $valuetypes)
+#set ($valueobject = $valuetype)
+#end
+#end
+#if ($valueobject != "String" && $valueobject != "Double" && $valueobject
!= "Integer" && $valueobject != "Boolean")
+#set ($valueobject = "String")
+#end
+#if ($valueobject != "String")
+#set ($simplevalue = ${javamodel.getPrimitiveType($valueobject)})
+##
+
+	/**
+	 * @param value The <code>${simplevalue}</code> value of the attribute.
+	 */
+	public void set${manifestmodel.camelCase($simplevalue)}Value(${simplevalue} value) {
+		super.setValue(String.valueOf(value));
+	}
+
+	/**
+	 * @return Returns the <code>${simplevalue}</code> value of the attribute
+	 */
+	public ${simplevalue} ${simplevalue}Value() {
+		String val = super.getValue();
+		try {
+			return ${valueobject}.parse${manifestmodel.camelCase($simplevalue)}(val);
+		} catch (NumberFormatException e) {
+			// TODO: validation handling/logging
+			throw (e);
+		}
+	}
+#end
+##
+
+	/**
+	 * @param attrValue The <code>String</code> value of the attribute.
+	 * @throws IllegalArgumentException If the provided attribute value is invalid
+	 */
+	@Override
+	public void setValue(String attrValue) {
+#if ($enum)
+#if ($hasdatatype)
+## enum and datatype
+		// Since we have not only enumValues, but also a DataType, we use String as common base
and don't validate.
+		super.setValue(attrValue);
+#else
+## enum and no datatype
+		try {
+			super.setValue(Value.enumValueOf(attrValue).toString());
+		} catch (NullPointerException e) {
+			throw new IllegalArgumentException(e);
+		}
+#end
+#else
+		try {
+			super.setValue(attrValue);
+		} catch (NullPointerException e) {
+			// TODO: validation handling/logging
+			throw new IllegalArgumentException(e);
+		} catch (IllegalArgumentException e) {
+			// TODO: validation handling/logging
+			throw (e);
+		}
+#end
+	}
+
+	/**
+	 * @return Returns the <code>String</code> value of the attribute
+	 */
+	@Override
+	public String getValue() {
+#if ($enum)
+#if ($hasdatatype)
+## enum and datatype
+		// Since we have not only enumValues, but also a DataType, we use String as common base
and don't validate.
+		return super.getValue();
+#else
+## enum and no datatype
+		try {
+			return Value.enumValueOf(super.getValue()).toString();
+		} catch (NullPointerException e) {
+			throw new IllegalArgumentException("the value of ${attribute} is not valid");
+		}
+#end
+#else
+		try {
+			return super.getValue();
+		} catch (IllegalArgumentException e) {
+			// TODO: validation handling/logging
+			throw new NumberFormatException("the value of ${attribute} is not valid");
+		}
+#end
+	}
+
+#if ($hasDefaultValue)
+	/**
+	 * Returns the default value of {@odf.attribute ${attribute}}.
+	 *
+	 * @return the default value as <code>String</code> dependent of its element
name
+	 *         return <code>null</code> if the default value does not exist
+	 */
+	@Override
+	public String getDefault() {
+		OdfElement parentElement = (OdfElement)getOwnerElement();
+		String defaultValue = null;
+		if (parentElement != null) {
+#if ($defaultValueSet.size()>1)
+#foreach ($parent in ${attribute.getParents().withoutMultiples()})
+#if ($odfmodel.getDefaultAttributeValue($attribute, $parent))
+			if (parentElement instanceof ${manifestmodel.camelCase($parent)}Element) {
+				defaultValue = "${manifestmodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute,
$parent))}";
+			}
+#end
+#end
+#else
+			defaultValue = "${manifestmodel.escapeLiteral($uniqueDefaultValue)}";
+#end
+		}
+		return defaultValue;
+	}
+
+	/**
+	 * Default value indicator. As the attribute default value is dependent from its element,
the attribute has only a default, when a parent element exists.
+	 *
+	 * @return <code>true</code> if {@odf.attribute ${attribute}} has an element
parent
+	 *         otherwise return <code>false</code> as undefined.
+	 */
+	@Override
+	public boolean hasDefault() {
+		return getOwnerElement() == null ? false : true;
+	}
+#else
+	/**
+	 * Returns the default value of {@odf.attribute ${attribute}}.
+	 *
+	 * @return the default value as <code>String</code> dependent of its element
name
+	 *         return <code>null</code> if the default value does not exist
+	 */
+	@Override
+	public String getDefault() {
+		return null;
+	}
+
+	/**
+	 * Default value indicator. As the attribute default value is dependent from its element,
the attribute has only a default, when a parent element exists.
+	 *
+	 * @return <code>true</code> if {@odf.attribute ${attribute}} has an element
parent
+	 *         otherwise return <code>false</code> as undefined.
+	 */
+	@Override
+	public boolean hasDefault() {
+		return false;
+	}
+#end
+
+	/**
+	 * @return Returns whether this attribute is known to be of type ID (i.e. xml:id ?)
+	 */
+	@Override
+	public boolean isId() {
+#if ($hasdatatype and $datatypes.size() > 0)
+#set ($datatype="")
+#foreach($value in $datatypes)
+#set ($datatype=$value)
+#end
+#if ($datatype == "ID")
+		return true;
+#else
+		return false;
+#end
+#else
+		return false;
+#end
+	}
+}

Added: incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
URL: http://svn.apache.org/viewvc/incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm?rev=1244419&view=auto
==============================================================================
--- incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
(added)
+++ incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
Wed Feb 15 09:43:09 2012
@@ -0,0 +1,344 @@
+##################################################################
+## 
+## 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 manifest element
+##
+## Documentation of template development can be found in local file
+## TemplateHelp.html.
+##
+#set ($element = ${manifestmodel.getElement($context)})
+#set ($oldelement = ${oldmodel.getElement($context)})
+###set ($NS = ${element.getNamespace()})
+#set ($classname = "${manifestmodel.camelCase($element)}Element")
+##
+## Set child element and child attributes
+#set ($children = ${element.getChildElements().withoutMultiples()})
+#set ($attributes = ${element.getAttributes().withoutMultiples()})
+##
+#set ($baseclassname = "OdfElement")
+#set ($baseHasMandatoryAttr = false)
+##
+## 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.manifest;
+
+##
+## ---------------------------------------------------
+##  Imports
+## ---------------------------------------------------
+##
+import org.odftoolkit.odfdom.pkg.OdfElement;
+import org.odftoolkit.odfdom.pkg.OdfFileDom;
+import org.odftoolkit.odfdom.pkg.OdfName;
+##
+## ---------------------------------------------------
+##  Class
+## ---------------------------------------------------
+##
+/**
+ * Manifest 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("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0",
"manifest:${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 = ${manifestmodel.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 = "${manifestmodel.camelCase($attribute)}Attribute")
+#set ($aParam = "${manifestmodel.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 = ${manifestmodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute,
$element))})
+#set ($defaultValueSet = $odfmodel.getDefaultAttributeValues($attribute))
+#if ($defaultValueSet.size()>1)
+#set ($constant = $manifestmodel.constantCase($defaultValue))
+#if ($valueObject == "String")
+		return ${aClassname}.DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)};
+#else
+		return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${manifestmodel.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${manifestmodel.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 = "${manifestmodel.camelCase($child)}Element")
+#set ($cVar = ${manifestmodel.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 = ${manifestmodel.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 = "${manifestmodel.camelCase($attribute)}Attribute")
+#set ($aParam = "${manifestmodel.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 = "${manifestmodel.camelCase($ch_attr)}Attribute")
+#set ($aParam = "${manifestmodel.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
+}

Added: incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
URL: http://svn.apache.org/viewvc/incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm?rev=1244419&view=auto
==============================================================================
--- incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
(added)
+++ incubator/odf/trunk/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
Wed Feb 15 09:43:09 2012
@@ -0,0 +1,62 @@
+##################################################################
+## 
+## 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.
+##
+##################################################################
+<?xml version="1.0" encoding="UTF-8"?>
+## Template to create the list of artefacts which are to be generated
+##
+## Documentation of template development can be found in local file
+## src/main/resources/documentation/help.html
+##
+<filelist>
+##
+#foreach ($element in ${signaturemodel.getElements().withoutMultiples()})
+#if ($element != "*")
+##
+#set($classname = "${signaturemodel.camelCase($element)}Element")
+	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$element" template="odfdom-dsig-element-template.vm"
/>
+##
+#end
+#end
+##
+#foreach ($attribute in ${signaturemodel.getAttributes().withoutMultiples()})
+#if ($attribute != "*")
+##
+#set($classname = "${signaturemodel.camelCase($attribute)}Attribute")
+	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$attribute" template="odfdom-dsig-attribute-template.vm"
/>
+#end
+#end
+##
+#foreach ($element in ${manifestmodel.getElements().withoutMultiples()})
+#if ($element != "*")
+##
+#set($classname = "${manifestmodel.camelCase($element)}Element")
+	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$element"
template="odfdom-manifest-element-template.vm" />
+##
+#end
+#end
+##
+#foreach ($attribute in ${manifestmodel.getAttributes().withoutMultiples()})
+#if ($attribute != "*")
+##
+#set($classname = "${manifestmodel.camelCase($attribute)}Attribute")
+	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$attribute"
template="odfdom-manifest-attribute-template.vm" />
+#end
+#end
+</filelist>



Mime
View raw message