org.codehaus.modello.plugins.xml
Class AbstractXmlGenerator

java.lang.Object
  extended by org.codehaus.plexus.logging.AbstractLogEnabled
      extended by org.codehaus.modello.plugin.AbstractModelloGenerator
          extended by org.codehaus.modello.plugins.xml.AbstractXmlGenerator
All Implemented Interfaces:
ModelloGenerator, org.codehaus.plexus.logging.LogEnabled, org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
Direct Known Subclasses:
XdocGenerator, XsdGenerator

public abstract class AbstractXmlGenerator
extends AbstractModelloGenerator

Abstract class for plugins working on XML representation of the model, without having any need to generate Java code.

Version:
$Id: AbstractXmlGenerator.java 1413 2010-02-13 21:23:01Z hboutemy $
Author:
Hervé Boutemy

Constructor Summary
AbstractXmlGenerator()
           
 
Method Summary
protected  ModelField getContentField(List<ModelField> modelFields)
          Get the field which type is Content if any.
protected  List<ModelField> getFieldsForXml(ModelClass modelClass, Version version)
          Return the XML fields of this class, with proper XML order and no XML transient fields.
protected  List<ModelField> getXmlAttributeFields(List<ModelField> modelFields)
          Gets all fields that are not marked as XML attribute.
protected  boolean hasContentField(List<ModelField> modelFields)
           
protected  void initHeader(org.codehaus.plexus.util.xml.XMLWriter w)
           
protected  String resolveTagName(ModelClass modelClass)
          Resolve XML tag name for a class.
protected  String resolveTagName(ModelField modelField, XmlFieldMetadata xmlFieldMetadata)
          Resolve XML tag name for a field.
protected  String resolveTagName(String fieldTagName, XmlAssociationMetadata xmlAssociationMetadata)
          Resolve XML tag name for an item in an association with many multiplicity.
 
Methods inherited from class org.codehaus.modello.plugin.AbstractModelloGenerator
capitalise, contextualize, getBuildContext, getEncoding, getFieldsForClass, getGeneratedVersion, getHeader, getModel, getOutputDirectory, getParameter, getParameter, getParameter, initialize, isClassInModel, isCollection, isEmpty, isInnerAssociation, isMap, isPackageWithVersion, singular, uncapitalise
 
Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.codehaus.modello.plugin.ModelloGenerator
generate
 

Constructor Detail

AbstractXmlGenerator

public AbstractXmlGenerator()
Method Detail

initHeader

protected void initHeader(org.codehaus.plexus.util.xml.XMLWriter w)

resolveTagName

protected String resolveTagName(ModelClass modelClass)
Resolve XML tag name for a class. Note: only root class needs such a resolution.

Parameters:
modelClass - the model class
Returns:
the XML tag name for the class

resolveTagName

protected String resolveTagName(ModelField modelField,
                                XmlFieldMetadata xmlFieldMetadata)
Resolve XML tag name for a field.

Parameters:
modelField - the model field
xmlFieldMetadata - the XML metadata of the field
Returns:
the XML tag name for the field

resolveTagName

protected String resolveTagName(String fieldTagName,
                                XmlAssociationMetadata xmlAssociationMetadata)
Resolve XML tag name for an item in an association with many multiplicity.

Parameters:
fieldTagName - the XML tag name of the field containing the association
xmlAssociationMetadata - the XML metadata of the association
Returns:
the XML tag name for items

hasContentField

protected boolean hasContentField(List<ModelField> modelFields)

getContentField

protected ModelField getContentField(List<ModelField> modelFields)
Get the field which type is Content if any.

Parameters:
modelFields - the fields to check
Returns:
the field, or null if no field is Content

getXmlAttributeFields

protected List<ModelField> getXmlAttributeFields(List<ModelField> modelFields)
Gets all fields that are not marked as XML attribute.

Parameters:
modelFields - The collection of model fields from which to extract the XML attributes, must not be null.
Returns:
The list of XML attributes fields, can be empty but never null.

getFieldsForXml

protected List<ModelField> getFieldsForXml(ModelClass modelClass,
                                           Version version)
Return the XML fields of this class, with proper XML order and no XML transient fields.

Parameters:
modelClass - current class
version - the version of the class to use
Returns:
the list of XML fields of this class


Copyright © 2001-2012 Codehaus. All Rights Reserved.