Class CmsXmlNestedContentDefinition
- java.lang.Object
-
- org.opencms.xml.types.A_CmsXmlContentValue
-
- org.opencms.xml.types.CmsXmlNestedContentDefinition
-
- All Implemented Interfaces:
java.lang.Comparable<I_CmsXmlSchemaType>
,I_CmsWidgetParameter
,I_CmsXmlContentValue
,I_CmsXmlSchemaType
public class CmsXmlNestedContentDefinition extends A_CmsXmlContentValue
A nested content XML definition that is included by another XML content definition.- Since:
- 6.0.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.opencms.xml.types.I_CmsXmlContentValue
I_CmsXmlContentValue.SearchContentType
-
-
Field Summary
-
Fields inherited from class org.opencms.xml.types.A_CmsXmlContentValue
m_defaultValue, m_document, m_element, m_locale, m_maxOccurs, m_minOccurs, m_name
-
Fields inherited from interface org.opencms.xml.types.I_CmsXmlSchemaType
XSI_NAMESPACE, XSI_NAMESPACE_ATTRIBUTE_NO_SCHEMA_LOCATION
-
-
Constructor Summary
Constructors Constructor Description CmsXmlNestedContentDefinition(CmsXmlContentDefinition contentDefinition, java.lang.String name, java.lang.String minOccurs, java.lang.String maxOccurs)
Creates a new nested content definition.CmsXmlNestedContentDefinition(CmsXmlContentDefinition contentDefinition, I_CmsXmlDocument document, org.dom4j.Element element, java.util.Locale locale, I_CmsXmlSchemaType type)
Creates a new XML content value for the nested content definition.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description I_CmsXmlContentValue
createValue(I_CmsXmlDocument document, org.dom4j.Element element, java.util.Locale locale)
Creates a XML content value object for this type.org.dom4j.Element
generateXml(CmsObject cms, I_CmsXmlDocument document, org.dom4j.Element root, java.util.Locale locale)
Appends an XML for a new, empty node of this schema type to the given root element.CmsXmlContentDefinition
getNestedContentDefinition()
Returns the nested content definition.java.lang.String
getSchemaDefinition()
Returns a String representation of the XML definition for this schema type.java.lang.String
getStringValue(CmsObject cms)
Returns the value of this XML content node as a String.java.lang.String
getTypeName()
Returns the schema type name.boolean
isChoiceType()
Returnstrue
if this type defines a choice sequence.boolean
isSimpleType()
Returnsfalse
, since nested content definitions are never simple.I_CmsXmlSchemaType
newInstance(java.lang.String name, java.lang.String minOccurs, java.lang.String maxOccurs)
Creates a new instance of this XML schema type initialized with the given values.void
setStringValue(CmsObject cms, java.lang.String value)
Sets the provided String as value of this XML content node.-
Methods inherited from class org.opencms.xml.types.A_CmsXmlContentValue
appendXmlSchema, compareTo, equals, getChoiceMaxOccurs, getContentDefinition, getDefault, getDefault, getDocument, getElement, getId, getIndex, getKey, getLocale, getMaxIndex, getMaxOccurs, getMinOccurs, getName, getPath, getPlainText, getRelationType, getXmlIndex, hasError, hashCode, isChoiceOption, isSearchable, moveDown, moveUp, moveValue, readSchemaDefinition, setContentDefinition, setDefault, setKeyPrefix, toString, validateValue
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.opencms.xml.types.I_CmsXmlContentValue
getSearchContentType
-
-
-
-
Constructor Detail
-
CmsXmlNestedContentDefinition
public CmsXmlNestedContentDefinition(CmsXmlContentDefinition contentDefinition, I_CmsXmlDocument document, org.dom4j.Element element, java.util.Locale locale, I_CmsXmlSchemaType type)
Creates a new XML content value for the nested content definition.- Parameters:
document
- the XML content instance this value belongs tocontentDefinition
- the nested XML content definitionelement
- the XML element that contains this valuelocale
- the locale this value is created fortype
- the type instance to create the value for
-
CmsXmlNestedContentDefinition
public CmsXmlNestedContentDefinition(CmsXmlContentDefinition contentDefinition, java.lang.String name, java.lang.String minOccurs, java.lang.String maxOccurs)
Creates a new nested content definition.- Parameters:
contentDefinition
- the content definition to nestname
- the name of the XML node containing the value according to the XML schemaminOccurs
- minimum number of occurrences of this type according to the XML schemamaxOccurs
- maximum number of occurrences of this type according to the XML schema
-
-
Method Detail
-
createValue
public I_CmsXmlContentValue createValue(I_CmsXmlDocument document, org.dom4j.Element element, java.util.Locale locale)
Description copied from interface:I_CmsXmlSchemaType
Creates a XML content value object for this type.- Parameters:
document
- the XML content instance this value belongs toelement
- the XML element to create the value fromlocale
- the locale to create the value for- Returns:
- the created XML content value object
- See Also:
I_CmsXmlSchemaType.createValue(I_CmsXmlDocument, org.dom4j.Element, Locale)
-
generateXml
public org.dom4j.Element generateXml(CmsObject cms, I_CmsXmlDocument document, org.dom4j.Element root, java.util.Locale locale)
Description copied from interface:I_CmsXmlSchemaType
Appends an XML for a new, empty node of this schema type to the given root element.This is used to dynamically build a vaild XML content object from an initialized
CmsXmlContentDefinition
class.Important: This method can only be used during initialization of a XML content object, not to add values to an already initialized XML content. To add values after initialization, use
CmsXmlContent.addValue(CmsObject, String, Locale, int)
.- Specified by:
generateXml
in interfaceI_CmsXmlSchemaType
- Overrides:
generateXml
in classA_CmsXmlContentValue
- Parameters:
cms
- the current users OpenCms contextdocument
- the document the XML is generated forroot
- the element to append the XML tolocale
- the locale to generate the element default content for- Returns:
- the generated XML element
- See Also:
I_CmsXmlSchemaType.generateXml(org.opencms.file.CmsObject, org.opencms.xml.I_CmsXmlDocument, org.dom4j.Element, java.util.Locale)
-
getNestedContentDefinition
public CmsXmlContentDefinition getNestedContentDefinition()
Returns the nested content definition.- Returns:
- the nested content definition
-
getSchemaDefinition
public java.lang.String getSchemaDefinition()
Description copied from interface:I_CmsXmlSchemaType
Returns a String representation of the XML definition for this schema type.- Returns:
- a String representation of the XML definition for this schema type
- See Also:
I_CmsXmlSchemaType.getSchemaDefinition()
-
getStringValue
public java.lang.String getStringValue(CmsObject cms) throws CmsRuntimeException
Description copied from interface:I_CmsXmlContentValue
Returns the value of this XML content node as a String.- Parameters:
cms
- an initialized instance of a CmsObject- Returns:
- the value of this XML content node as a String
- Throws:
CmsRuntimeException
- See Also:
I_CmsXmlContentValue.getStringValue(org.opencms.file.CmsObject)
-
getTypeName
public java.lang.String getTypeName()
Description copied from interface:I_CmsXmlSchemaType
Returns the schema type name.By convention, a XML schema type name has the form
"OpenCms + ${name}"
. Examples are"OpenCmsString"
or"OpenCmsBoolean"
.The schema type name is fixed by the implementation.
- Returns:
- the schema type name
- See Also:
I_CmsXmlSchemaType.getTypeName()
-
isChoiceType
public boolean isChoiceType()
Description copied from interface:I_CmsXmlSchemaType
Returnstrue
if this type defines a choice sequence.This method is intended to check if this type is a node defining a choice sequence. In order to check if this type is an option inside of a choice sequence, use
I_CmsXmlSchemaType.isChoiceOption()
.- Specified by:
isChoiceType
in interfaceI_CmsXmlSchemaType
- Overrides:
isChoiceType
in classA_CmsXmlContentValue
- Returns:
true
if this node defines a choice sequence- See Also:
I_CmsXmlSchemaType.isChoiceType()
-
isSimpleType
public boolean isSimpleType()
Returnsfalse
, since nested content definitions are never simple.- Specified by:
isSimpleType
in interfaceI_CmsXmlSchemaType
- Overrides:
isSimpleType
in classA_CmsXmlContentValue
- Returns:
- true if this is a simple type, or false if this type is a nested schema
- See Also:
I_CmsXmlSchemaType.isSimpleType()
-
newInstance
public I_CmsXmlSchemaType newInstance(java.lang.String name, java.lang.String minOccurs, java.lang.String maxOccurs)
Description copied from interface:I_CmsXmlSchemaType
Creates a new instance of this XML schema type initialized with the given values.- Parameters:
name
- the name to use in the xml documentminOccurs
- minimum number of occurrencesmaxOccurs
- maximum number of occurrences- Returns:
- a new instance of this XML content type initialized with the given values
- See Also:
I_CmsXmlSchemaType.newInstance(java.lang.String, java.lang.String, java.lang.String)
-
setStringValue
public void setStringValue(CmsObject cms, java.lang.String value)
Description copied from interface:I_CmsXmlContentValue
Sets the provided String as value of this XML content node.This method does provide processing of the content based on the users current OpenCms context. This can be used e.g. for link extraction and replacement in the content.
- Parameters:
cms
- an initialized instance of a CmsObjectvalue
- the value to set- See Also:
I_CmsXmlContentValue.setStringValue(org.opencms.file.CmsObject, java.lang.String)
-
-