001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/xml/types/I_CmsXmlContentValue.java,v $
003: * Date : $Date: 2008-02-27 12:05:29 $
004: * Version: $Revision: 1.19 $
005: *
006: * This library is part of OpenCms -
007: * the Open Source Content Management System
008: *
009: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
010: *
011: * This library is free software; you can redistribute it and/or
012: * modify it under the terms of the GNU Lesser General Public
013: * License as published by the Free Software Foundation; either
014: * version 2.1 of the License, or (at your option) any later version.
015: *
016: * This library is distributed in the hope that it will be useful,
017: * but WITHOUT ANY WARRANTY; without even the implied warranty of
018: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: * Lesser General Public License for more details.
020: *
021: * For further information about Alkacon Software GmbH, please see the
022: * company website: http://www.alkacon.com
023: *
024: * For further information about OpenCms, please see the
025: * project website: http://www.opencms.org
026: *
027: * You should have received a copy of the GNU Lesser General Public
028: * License along with this library; if not, write to the Free Software
029: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
030: */
031:
032: package org.opencms.xml.types;
033:
034: import org.opencms.file.CmsObject;
035: import org.opencms.xml.I_CmsXmlDocument;
036:
037: import java.util.Locale;
038:
039: import org.dom4j.Element;
040:
041: /**
042: * Provides access to the value of a specific XML content node.<p>
043: *
044: * @author Alexander Kandzior
045: *
046: * @version $Revision: 1.19 $
047: *
048: * @since 6.0.0
049: */
050: public interface I_CmsXmlContentValue extends I_CmsXmlSchemaType {
051:
052: /**
053: * Returns the XML content instance this value belongs to.<p>
054: *
055: * @return the XML content instance this value belongs to
056: */
057: I_CmsXmlDocument getDocument();
058:
059: /**
060: * Returns the original XML element of this XML content value.<p>
061: *
062: * @return the original XML element of this XML content value
063: */
064: Element getElement();
065:
066: /**
067: * Returns the node index of this XML content value in the source XML document,
068: * starting with 0.<p>
069: *
070: * This is usefull in case there are more then one elements
071: * with the same XML node name in the source XML document.<p>
072: *
073: * @return the index of this XML content node in the source document
074: */
075: int getIndex();
076:
077: /**
078: * Returns the locale of this XML content value was generated for.<p>
079: *
080: * @return the locale of this XML content value was generated for
081: */
082: Locale getLocale();
083:
084: /**
085: * Returns the total number of XML elements of this type that currently exist in the source document.<p>
086: *
087: * @return the total number of XML elements of this type that currently exist in the source document
088: */
089: int getMaxIndex();
090:
091: /**
092: * Returns the path of this XML content value in the source document.<p>
093: *
094: * @return the path of this XML content value in the source document
095: */
096: String getPath();
097:
098: /**
099: * Returns the value of this XML content node as a plain text String.<p>
100: *
101: * Plain text in this context means a pure textual representation
102: * of the content (i.e. without html tags).
103: * The plain text may be <code>null</code>, too, if there is no sound or useful
104: * textual representation (i.e. color values).<p>
105: *
106: * @param cms an initialized instance of a CmsObject
107: *
108: * @return the value of this XML content node as a plain text String
109: */
110: String getPlainText(CmsObject cms);
111:
112: /**
113: * Returns the value of this XML content node as a String.<p>
114: *
115: * @param cms an initialized instance of a CmsObject
116: *
117: * @return the value of this XML content node as a String
118: */
119: String getStringValue(CmsObject cms);
120:
121: /**
122: * Returns <code>true</code> in case this value is searchable by default with
123: * the integrated full text search.<p>
124: *
125: * @return <code>true</code> in case this value is searchable by default
126: */
127: boolean isSearchable();
128:
129: /**
130: * Moves this XML content value one position down in the source document, if possible.<p>
131: *
132: * If the XML content value is already the first in it's sequence, it is not moved.<p>
133: */
134: void moveDown();
135:
136: /**
137: * Moves this XML content value one position up in the source document, if possible.<p>
138: *
139: * If the XML content value is already the last in it's sequence, it is not moved.<p>
140: */
141: void moveUp();
142:
143: /**
144: * Sets the provided String as value of this XML content node.<p>
145: *
146: * This method does provide processing of the content based on the
147: * users current OpenCms context. This can be used e.g. for link
148: * extraction and replacement in the content.<p>
149: *
150: * @param cms an initialized instance of a CmsObject
151: * @param value the value to set
152: *
153: */
154: void setStringValue(CmsObject cms, String value);
155: }
|