org.opencms.xml.types
Class CmsXmlVarLinkValue

java.lang.Object
  extended by org.opencms.xml.types.A_CmsXmlContentValue
      extended by org.opencms.xml.types.CmsXmlVarLinkValue
All Implemented Interfaces:
java.lang.Comparable<I_CmsXmlSchemaType>, I_CmsWidgetParameter, I_CmsXmlContentValue, I_CmsXmlSchemaType

public class CmsXmlVarLinkValue
extends A_CmsXmlContentValue

Describes the XML content type "OpenCmsVarLink".

This type allows a link to either an internal VFS resource, or to an external website.

Since:
7.0.0
Version:
$Revision: 1.11 $
Author:
Alexander Kandzior

Field Summary
static java.lang.String NO_LINK
          Value to mark that no link is defined, "none".
static java.lang.String TYPE_NAME
          The name of this type as used in the XML schema.
 
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
CmsXmlVarLinkValue()
          Creates a new, empty schema type descriptor of type "OpenCmsVfsFile".
CmsXmlVarLinkValue(I_CmsXmlDocument document, org.dom4j.Element element, java.util.Locale locale, I_CmsXmlSchemaType type)
          Creates a new XML content value of type "OpenCmsVfsFile".
CmsXmlVarLinkValue(java.lang.String name, java.lang.String minOccurs, java.lang.String maxOccurs)
          Creates a new schema type descriptor for the type "OpenCmsVfsFile".
 
Method Summary
 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.
 CmsLink getLink(CmsObject cms)
          Returns the link object represented by this XML content value.
 java.lang.String getPlainText(CmsObject cms)
          Returns the value of this XML content node as a plain text String.
 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 isSearchable()
          The default implementation always returns true.
 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, getContentDefinition, getDefault, getDefault, getDocument, getElement, getId, getIndex, getKey, getLocale, getMaxIndex, getMaxOccurs, getMinOccurs, getName, getPath, hasError, hashCode, isSimpleType, moveDown, moveUp, moveValue, readSchemaDefinition, setContentDefinition, setDefault, setKeyPrefix, toString, validateValue
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_LINK

public static final java.lang.String NO_LINK
Value to mark that no link is defined, "none".

See Also:
Constant Field Values

TYPE_NAME

public static final java.lang.String TYPE_NAME
The name of this type as used in the XML schema.

See Also:
Constant Field Values
Constructor Detail

CmsXmlVarLinkValue

public CmsXmlVarLinkValue()
Creates a new, empty schema type descriptor of type "OpenCmsVfsFile".


CmsXmlVarLinkValue

public CmsXmlVarLinkValue(I_CmsXmlDocument document,
                          org.dom4j.Element element,
                          java.util.Locale locale,
                          I_CmsXmlSchemaType type)
Creates a new XML content value of type "OpenCmsVfsFile".

Parameters:
document - the XML content instance this value belongs to
element - the XML element that contains this value
locale - the locale this value is created for
type - the type instance to create the value for

CmsXmlVarLinkValue

public CmsXmlVarLinkValue(java.lang.String name,
                          java.lang.String minOccurs,
                          java.lang.String maxOccurs)
Creates a new schema type descriptor for the type "OpenCmsVfsFile".

Parameters:
name - the name of the XML node containing the value according to the XML schema
minOccurs - minimum number of occurrences of this type according to the XML schema
maxOccurs - 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 to
element - the XML element to create the value from
locale - 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 interface I_CmsXmlSchemaType
Overrides:
generateXml in class A_CmsXmlContentValue
Parameters:
cms - the current users OpenCms context
document - the document the XML is generated for
root - the element to append the XML to
locale - 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)

getLink

public CmsLink getLink(CmsObject cms)
Returns the link object represented by this XML content value.

Parameters:
cms - the cms context, can be null but in this case no link check is performed, and the target is marked as "external"
Returns:
the link object represented by this XML content value

getPlainText

public java.lang.String getPlainText(CmsObject cms)
Description copied from interface: I_CmsXmlContentValue
Returns the value of this XML content node as a plain text String.

Plain text in this context means a pure textual representation of the content (i.e. without html tags). The plain text may be null, too, if there is no sound or useful textual representation (i.e. color values).

Specified by:
getPlainText in interface I_CmsXmlContentValue
Overrides:
getPlainText in class A_CmsXmlContentValue
Parameters:
cms - an initialized instance of a CmsObject
Returns:
the value of this XML content node as a plain text String
See Also:
I_CmsXmlContentValue.getPlainText(org.opencms.file.CmsObject)

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(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()

isSearchable

public boolean isSearchable()
Description copied from class: A_CmsXmlContentValue
The default implementation always returns true.

Specified by:
isSearchable in interface I_CmsXmlContentValue
Overrides:
isSearchable in class A_CmsXmlContentValue
Returns:
true in case this value is searchable by default
See Also:
A_CmsXmlContentValue.isSearchable()

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 document
minOccurs - minimum number of occurrences
maxOccurs - 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)
                    throws CmsIllegalArgumentException
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 CmsObject
value - the value to set
Throws:
CmsIllegalArgumentException
See Also:
I_CmsXmlContentValue.setStringValue(org.opencms.file.CmsObject, java.lang.String)