blob: aff049e1d598d0c1f733d4d8f2710638d9ec982c [file] [log] [blame]
/**
* Copyright (c) 2018 CEA
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Jérémie Tatibouet (CEA) jeremie.tatibouet@cea.fr - Initial API and implementation
* Benoit Maggi (CEA) benoit.maggi@cea.fr - Initial API and implementation
* Shuai Li (CEA) shuai.li@cea.fr - Integration of sensiNact and Web of Things Thing Description
*
*/
package org.eclipse.papyrus.iotml.wot;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.TypedElement;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Data Schema</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getTitle <em>Title</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getDescription <em>Description</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getBase_TypedElement <em>Base Typed Element</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getEnum <em>Enum</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getRequired <em>Required</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getItems <em>Items</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getProperties <em>Properties</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getAType <em>AType</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#isWriteOnly <em>Write Only</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getFormat <em>Format</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getOneOf <em>One Of</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getType <em>Type</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getConst <em>Const</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getMinItems <em>Min Items</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#getMaxItems <em>Max Items</em>}</li>
* <li>{@link org.eclipse.papyrus.iotml.wot.DataSchema#isReadOnly <em>Read Only</em>}</li>
* </ul>
*
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema()
* @model
* @generated
*/
public interface DataSchema extends EObject {
/**
* Returns the value of the '<em><b>Title</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Title</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Title</em>' attribute.
* @see #setTitle(String)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Title()
* @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
String getTitle();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getTitle <em>Title</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Title</em>' attribute.
* @see #getTitle()
* @generated
*/
void setTitle(String value);
/**
* Returns the value of the '<em><b>Description</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Description</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Description</em>' attribute.
* @see #setDescription(String)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Description()
* @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
String getDescription();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getDescription <em>Description</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Description</em>' attribute.
* @see #getDescription()
* @generated
*/
void setDescription(String value);
/**
* Returns the value of the '<em><b>Base Typed Element</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Base Typed Element</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Base Typed Element</em>' reference.
* @see #setBase_TypedElement(TypedElement)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Base_TypedElement()
* @model ordered="false"
* @generated
*/
TypedElement getBase_TypedElement();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getBase_TypedElement <em>Base Typed Element</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Base Typed Element</em>' reference.
* @see #getBase_TypedElement()
* @generated
*/
void setBase_TypedElement(TypedElement value);
/**
* Returns the value of the '<em><b>Enum</b></em>' attribute list.
* The list contents are of type {@link java.lang.String}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Enum</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Enum</em>' attribute list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Enum()
* @model dataType="org.eclipse.uml2.types.String" ordered="false"
* @generated
*/
EList<String> getEnum();
/**
* Returns the value of the '<em><b>Required</b></em>' reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.Property}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Required</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Required</em>' reference list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Required()
* @model ordered="false"
* @generated
*/
EList<Property> getRequired();
/**
* Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Required</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>.
* @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
* @see #getRequired()
* @generated
*/
Property getRequired(String name, Type type);
/**
* Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Required</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>.
* @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>.
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
* @see #getRequired()
* @generated
*/
Property getRequired(String name, Type type, boolean ignoreCase, EClass eClass);
/**
* Returns the value of the '<em><b>Items</b></em>' reference list.
* The list contents are of type {@link org.eclipse.papyrus.iotml.wot.DataSchema}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Items</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Items</em>' reference list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Items()
* @model ordered="false"
* @generated
*/
EList<DataSchema> getItems();
/**
* Returns the value of the '<em><b>Properties</b></em>' reference list.
* The list contents are of type {@link org.eclipse.papyrus.iotml.wot.DataSchema}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Properties</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Properties</em>' reference list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Properties()
* @model ordered="false"
* @generated
*/
EList<DataSchema> getProperties();
/**
* Returns the value of the '<em><b>AType</b></em>' reference list.
* The list contents are of type {@link org.eclipse.papyrus.iotml.wot.Type}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>AType</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>AType</em>' reference list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_AType()
* @model ordered="false"
* @generated
*/
EList<org.eclipse.papyrus.iotml.wot.Type> getAType();
/**
* Returns the value of the '<em><b>Write Only</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Write Only</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Write Only</em>' attribute.
* @see #setWriteOnly(boolean)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_WriteOnly()
* @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
* @generated
*/
boolean isWriteOnly();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#isWriteOnly <em>Write Only</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Write Only</em>' attribute.
* @see #isWriteOnly()
* @generated
*/
void setWriteOnly(boolean value);
/**
* Returns the value of the '<em><b>Format</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Format</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Format</em>' attribute.
* @see #setFormat(String)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Format()
* @model dataType="org.eclipse.uml2.types.String" ordered="false"
* @generated
*/
String getFormat();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getFormat <em>Format</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Format</em>' attribute.
* @see #getFormat()
* @generated
*/
void setFormat(String value);
/**
* Returns the value of the '<em><b>One Of</b></em>' reference list.
* The list contents are of type {@link org.eclipse.papyrus.iotml.wot.DataSchema}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>One Of</em>' reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>One Of</em>' reference list.
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_OneOf()
* @model ordered="false"
* @generated
*/
EList<DataSchema> getOneOf();
/**
* Returns the value of the '<em><b>Type</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Type</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Type</em>' attribute.
* @see #setType(String)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Type()
* @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
String getType();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getType <em>Type</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Type</em>' attribute.
* @see #getType()
* @generated
*/
void setType(String value);
/**
* Returns the value of the '<em><b>Const</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Const</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Const</em>' attribute.
* @see #setConst(String)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_Const()
* @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
String getConst();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getConst <em>Const</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Const</em>' attribute.
* @see #getConst()
* @generated
*/
void setConst(String value);
/**
* Returns the value of the '<em><b>Min Items</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Min Items</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Min Items</em>' attribute.
* @see #setMinItems(int)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_MinItems()
* @model dataType="org.eclipse.uml2.types.Integer" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
int getMinItems();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getMinItems <em>Min Items</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Min Items</em>' attribute.
* @see #getMinItems()
* @generated
*/
void setMinItems(int value);
/**
* Returns the value of the '<em><b>Max Items</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Max Items</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Max Items</em>' attribute.
* @see #setMaxItems(int)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_MaxItems()
* @model dataType="org.eclipse.uml2.types.Integer" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
int getMaxItems();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#getMaxItems <em>Max Items</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Max Items</em>' attribute.
* @see #getMaxItems()
* @generated
*/
void setMaxItems(int value);
/**
* Returns the value of the '<em><b>Read Only</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Read Only</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Read Only</em>' attribute.
* @see #setReadOnly(boolean)
* @see org.eclipse.papyrus.iotml.wot.WoTPackage#getDataSchema_ReadOnly()
* @model dataType="org.eclipse.uml2.types.Boolean" required="true" transient="true" volatile="true" derived="true" ordered="false"
* @generated
*/
boolean isReadOnly();
/**
* Sets the value of the '{@link org.eclipse.papyrus.iotml.wot.DataSchema#isReadOnly <em>Read Only</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Read Only</em>' attribute.
* @see #isReadOnly()
* @generated
*/
void setReadOnly(boolean value);
} // DataSchema