/* license-start
*
* Copyright (C) 2008 - 2013 Crispico, <http://www.crispico.com/>.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details, at <http://www.gnu.org/licenses/>.
*
* Contributors:
* Crispico - Initial API and implementation
*
* license-end
*/
/**
* <copyright>
* </copyright>
*
* $Id$
*/
package com.crispico.flower.mp.model.codesync;
import java.io.Serializable;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Element</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isSynchronized <em>Synchronized</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isChildrenSynchronized <em>Children Synchronized</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isAdded <em>Added</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isDeleted <em>Deleted</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getStatusFlags <em>Status Flags</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getName <em>Name</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getType <em>Type</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getAstCacheElement <em>Ast Cache Element</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getChildren <em>Children</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getFeatureChanges <em>Feature Changes</em>}</li>
* <li>{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getRelations <em>Relations</em>}</li>
* </ul>
* </p>
*
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement()
* @model
* @generated
*/
public interface CodeSyncElement extends EObject {
/**
* Returns the value of the '<em><b>Synchronized</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Synchronized</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Synchronized</em>' attribute.
* @see #setSynchronized(boolean)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Synchronized()
* @model transient="true" volatile="true" derived="true"
* @generated
*/
boolean isSynchronized();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isSynchronized <em>Synchronized</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Synchronized</em>' attribute.
* @see #isSynchronized()
* @generated
*/
void setSynchronized(boolean value);
/**
* Returns the value of the '<em><b>Children Synchronized</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Children Synchronized</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Children Synchronized</em>' attribute.
* @see #setChildrenSynchronized(boolean)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_ChildrenSynchronized()
* @model transient="true" volatile="true" derived="true"
* @generated
*/
boolean isChildrenSynchronized();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isChildrenSynchronized <em>Children Synchronized</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Children Synchronized</em>' attribute.
* @see #isChildrenSynchronized()
* @generated
*/
void setChildrenSynchronized(boolean value);
/**
* Returns the value of the '<em><b>Added</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Added</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Added</em>' attribute.
* @see #setAdded(boolean)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Added()
* @model transient="true" volatile="true" derived="true"
* @generated
*/
boolean isAdded();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isAdded <em>Added</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Added</em>' attribute.
* @see #isAdded()
* @generated
*/
void setAdded(boolean value);
/**
* Returns the value of the '<em><b>Deleted</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Deleted</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Deleted</em>' attribute.
* @see #setDeleted(boolean)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Deleted()
* @model transient="true" volatile="true" derived="true"
* @generated
*/
boolean isDeleted();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#isDeleted <em>Deleted</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Deleted</em>' attribute.
* @see #isDeleted()
* @generated
*/
void setDeleted(boolean value);
/**
* Returns the value of the '<em><b>Status Flags</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Status Flags</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Status Flags</em>' attribute.
* @see #setStatusFlags(int)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_StatusFlags()
* @model
* @generated
*/
int getStatusFlags();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getStatusFlags <em>Status Flags</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Status Flags</em>' attribute.
* @see #getStatusFlags()
* @generated
*/
void setStatusFlags(int value);
/**
* Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Name</em>' attribute.
* @see #setName(String)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Name()
* @model
* @generated
*/
String getName();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* 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 com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Type()
* @model
* @generated
*/
String getType();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#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>Ast Cache Element</b></em>' reference.
* It is bidirectional and its opposite is '{@link com.crispico.flower.mp.model.codesync.AstCacheElement#getCodeSyncElement <em>Code Sync Element</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Ast Cache 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>Ast Cache Element</em>' reference.
* @see #setAstCacheElement(AstCacheElement)
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_AstCacheElement()
* @see com.crispico.flower.mp.model.codesync.AstCacheElement#getCodeSyncElement
* @model opposite="codeSyncElement"
* @generated
*/
AstCacheElement getAstCacheElement();
/**
* Sets the value of the '{@link com.crispico.flower.mp.model.codesync.CodeSyncElement#getAstCacheElement <em>Ast Cache Element</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Ast Cache Element</em>' reference.
* @see #getAstCacheElement()
* @generated
*/
void setAstCacheElement(AstCacheElement value);
/**
* Returns the value of the '<em><b>Children</b></em>' containment reference list.
* The list contents are of type {@link com.crispico.flower.mp.model.codesync.CodeSyncElement}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Children</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Children</em>' containment reference list.
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Children()
* @model containment="true"
* @generated
*/
EList<CodeSyncElement> getChildren();
/**
* Returns the value of the '<em><b>Feature Changes</b></em>' map.
* The key is of type {@link org.eclipse.emf.ecore.EStructuralFeature},
* and the value is of type {@link com.crispico.flower.mp.model.codesync.FeatureChange},
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Feature Changes</em>' map isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Feature Changes</em>' map.
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_FeatureChanges()
* @model mapType="com.crispico.flower.mp.model.codesync.EStructuralFeatureToFeatureChangeEntry<org.eclipse.emf.ecore.EStructuralFeature, com.crispico.flower.mp.model.codesync.FeatureChange>"
* @generated
*/
EMap<EStructuralFeature, FeatureChange> getFeatureChanges();
/**
* Returns the value of the '<em><b>Relations</b></em>' containment reference list.
* The list contents are of type {@link com.crispico.flower.mp.model.codesync.Relation}.
* It is bidirectional and its opposite is '{@link com.crispico.flower.mp.model.codesync.Relation#getSource <em>Source</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Relations</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Relations</em>' containment reference list.
* @see com.crispico.flower.mp.model.codesync.CodeSyncPackage#getCodeSyncElement_Relations()
* @see com.crispico.flower.mp.model.codesync.Relation#getSource
* @model opposite="source" containment="true"
* @generated
*/
EList<Relation> getRelations();
} // CodeSyncElement