/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.jboss.tools.smooks.model.javabean12;
import org.eclipse.emf.common.util.EList;
import org.jboss.tools.smooks.model.common.AbstractAnyType;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Value Type</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDecodeParam <em>Decode Param</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getData <em>Data</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDataNS <em>Data NS</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDecoder <em>Decoder</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDefault <em>Default</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getProperty <em>Property</em>}</li>
* <li>{@link org.jboss.tools.smooks.model.javabean12.ValueType#getSetterMethod <em>Setter Method</em>}</li>
* </ul>
* </p>
*
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType()
* @model extendedMetaData="name='value_._type' kind='elementOnly'"
* @generated
*/
public interface ValueType extends AbstractAnyType {
/**
* Returns the value of the '<em><b>Decode Param</b></em>' containment reference list.
* The list contents are of type {@link org.jboss.tools.smooks.model.javabean12.DecodeParamType}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
*
* Data Decode Parameter.
* <p/>
* Some decoders may require parameters in order to complete the decoding process e.g. the
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/decoders/DateDecoder.html">DateDecoder</a>.
* These parameters can be specified by adding <decodeParam> sub-elements to the <value>
* binding element. Review the Decoder's Javadoc for details of the custom parameters.
* <p/>
* <u>Example:</u>
* <pre>
* <jb:value property="date" data="header/date" decoder="<a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/decoders/DateDecoder.html">Date</a>">
* <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
* <jb:decodeParam name="locale-language">en</jb:decodeParam>
* <jb:decodeParam name="locale-country">IE</jb:decodeParam>
* </jb:value>
* </pre>
*
* <!-- end-model-doc -->
* @return the value of the '<em>Decode Param</em>' containment reference list.
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_DecodeParam()
* @model type="javabean12.DecodeParamType" containment="true"
* extendedMetaData="kind='element' name='decodeParam' namespace='##targetNamespace'"
* @generated
*/
EList getDecodeParam();
/**
* Returns the value of the '<em><b>Data</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
*
* The Source data event stream element event defining the data to be bound.
* <p/>
* Think of this as the element path (in the Source data) to the data.
* <h3>Examples</h3>
* <ul>
* <li>
* <b>Element Text Data:</b>
* "order/orderid"
* </li>
* <li>
* <b>Element Attribute Data:</b>
* "order/header/@date"
* </li>
* </ul>
*
* <!-- end-model-doc -->
* @return the value of the '<em>Data</em>' attribute.
* @see #setData(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_Data()
* @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
* extendedMetaData="kind='attribute' name='data'"
* @generated
*/
String getData();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getData <em>Data</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Data</em>' attribute.
* @see #getData()
* @generated
*/
void setData(String value);
/**
* Returns the value of the '<em><b>Data NS</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The namespace for the "data" selector (see "data" attribute).
*
* <!-- end-model-doc -->
* @return the value of the '<em>Data NS</em>' attribute.
* @see #setDataNS(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_DataNS()
* @model dataType="org.eclipse.emf.ecore.xml.type.AnyURI"
* extendedMetaData="kind='attribute' name='dataNS'"
* @generated
*/
String getDataNS();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDataNS <em>Data NS</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Data NS</em>' attribute.
* @see #getDataNS()
* @generated
*/
void setDataNS(String value);
/**
* Returns the value of the '<em><b>Decoder</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
*
* Data Decoder.
* <p/>
* This attribute specifies the
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/DataDecoder.html">DataDecoder</a>
* to be used to decode the data (see "data" attribute) before setting it on the target bean
* property(see "property" attribute).
* <p/>
* Smooks contains decoders for all of the main data types (Long, Integer etc). In these cases,
* just specify the decoder as being "Long", "Integer", "Date" etc i.e. no need to specify the fully qualified
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/DataDecoder.html">DataDecoder</a>
* class name. The fully qualified class name is only required for custom
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/DataDecoder.html">DataDecoder</a>
* implementations.
*
* <h3>Primitive Types</h3>
* Smooks does not define special decoders for any of the primitive types. To decode a
* primitive property type, just specify the Object equivalent decoder e.g. specify "Integer" for "int",
* "Double" for "double" etc etc.
*
* <h3>Decode Parameters</h3>
* Some decoders may require parameters in order to complete the decoding process e.g. the
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/decoders/DateDecoder.html">DateDecoder</a>.
* These parameters can be specified by adding <decodeParam> sub-elements to the <value>
* binding element. Review the Decoder's Javadoc for details of the custom parameters.
* <p/>
* <u>Example:</u>
* <pre>
* <jb:value property="date" data="header/date" decoder="<a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/decoders/DateDecoder.html">Date</a>">
* <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
* <jb:decodeParam name="locale-language">en</jb:decodeParam>
* <jb:decodeParam name="locale-country">IE</jb:decodeParam>
* </jb:value>
* </pre>
*
* <h3>Custom Data Decoding</h3>
* For custom data decoding, implement the
* <a href="http://milyn.codehaus.org/javadoc/smooks/org/milyn/javabean/DataDecoder.html">
* DataDecoder
* </a>
* interface and specify the decoder using the fully qualified class name of the new
* implementation.
*
* <!-- end-model-doc -->
* @return the value of the '<em>Decoder</em>' attribute.
* @see #setDecoder(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_Decoder()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='decoder'"
* @generated
*/
String getDecoder();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDecoder <em>Decoder</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Decoder</em>' attribute.
* @see #getDecoder()
* @generated
*/
void setDecoder(String value);
/**
* Returns the value of the '<em><b>Default</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The default data value, where a null/empty data String is returned
* for the data element.
*
* <!-- end-model-doc -->
* @return the value of the '<em>Default</em>' attribute.
* @see #setDefault(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_Default()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='default'"
* @generated
*/
String getDefault();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getDefault <em>Default</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Default</em>' attribute.
* @see #getDefault()
* @generated
*/
void setDefault(String value);
/**
* Returns the value of the '<em><b>Property</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The class property to which the decoded data is to be bound.
* <p/>
* The property attribute does not need to be specified when the "class" type on the parent "bindings" element
* is a List/Array or Map. In the case of a List/Array, the bean is simply added. In the case of Map, the
* element name (from the element specified in the "data" attribute) is used.
*
* <!-- end-model-doc -->
* @return the value of the '<em>Property</em>' attribute.
* @see #setProperty(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_Property()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='property'"
* @generated
*/
String getProperty();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getProperty <em>Property</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Property</em>' attribute.
* @see #getProperty()
* @generated
*/
void setProperty(String value);
/**
* Returns the value of the '<em><b>Setter Method</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
*
* The class method which is called to bind the data
* to the object. Not needed when binding to a Collection.
* <p/>
* The setterMethod attribute does not need to be specified when the "class" type on the parent "bindings" element
* is a List/Array or Map. In the case of a List/Array, the bean is simply added. In the case of Map, the
* element name (from the element specified in the "data" attribute) is used.
*
* <!-- end-model-doc -->
* @return the value of the '<em>Setter Method</em>' attribute.
* @see #setSetterMethod(String)
* @see org.jboss.tools.smooks.model.javabean12.Javabean12Package#getValueType_SetterMethod()
* @model dataType="org.eclipse.emf.ecore.xml.type.String"
* extendedMetaData="kind='attribute' name='setterMethod'"
* @generated
*/
String getSetterMethod();
/**
* Sets the value of the '{@link org.jboss.tools.smooks.model.javabean12.ValueType#getSetterMethod <em>Setter Method</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Setter Method</em>' attribute.
* @see #getSetterMethod()
* @generated
*/
void setSetterMethod(String value);
} // ValueType