| /** |
| * <copyright> |
| *******************************************************************************/ |
| package company; |
| |
| import java.util.Map; |
| |
| import org.eclipse.emf.common.util.DiagnosticChain; |
| import org.eclipse.emf.common.util.EList; |
| |
| import org.eclipse.emf.ecore.EObject; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Employee</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * </p> |
| * <ul> |
| * <li>{@link company.Employee#getName <em>Name</em>}</li> |
| * <li>{@link company.Employee#getManager <em>Manager</em>}</li> |
| * <li>{@link company.Employee#getCompany <em>Company</em>}</li> |
| * <li>{@link company.Employee#getDirectReports <em>Direct Reports</em>}</li> |
| * <li>{@link company.Employee#getAllReports <em>All Reports</em>}</li> |
| * <li>{@link company.Employee#getReportingChain <em>Reporting Chain</em>}</li> |
| * <li>{@link company.Employee#isHasNameAsAttribute <em>Has Name As Attribute</em>}</li> |
| * </ul> |
| * |
| * @see company.CompanyPackage#getEmployee() |
| * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='mustHaveName mustHaveNonEmptyName'" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot mustHaveName='Tuple {\n\tmessage : String = \'Employee must have a name\',\n\tstatus : Boolean = not name.oclIsUndefined() and hasNameAsAttribute and hasNameAsOperation()\n}.status' mustHaveNonEmptyName='name->notEmpty() implies name.size() > 0'" |
| * @generated |
| */ |
| public interface Employee extends EObject { |
| /** |
| * 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 company.CompanyPackage#getEmployee_Name() |
| * @model |
| * @generated |
| */ |
| String getName(); |
| |
| /** |
| * Sets the value of the '{@link company.Employee#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>Manager</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Manager</em>' reference isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Manager</em>' reference. |
| * @see #setManager(Employee) |
| * @see company.CompanyPackage#getEmployee_Manager() |
| * @model |
| * @generated |
| */ |
| Employee getManager(); |
| |
| /** |
| * Sets the value of the '{@link company.Employee#getManager <em>Manager</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Manager</em>' reference. |
| * @see #getManager() |
| * @generated |
| */ |
| void setManager(Employee value); |
| |
| /** |
| * Returns the value of the '<em><b>Company</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link company.Company#getEmployees <em>Employees</em>}'. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Company</em>' container reference isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Company</em>' container reference. |
| * @see #setCompany(Company) |
| * @see company.CompanyPackage#getEmployee_Company() |
| * @see company.Company#getEmployees |
| * @model opposite="employees" required="true" transient="false" |
| * @generated |
| */ |
| Company getCompany(); |
| |
| /** |
| * Sets the value of the '{@link company.Employee#getCompany <em>Company</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Company</em>' container reference. |
| * @see #getCompany() |
| * @generated |
| */ |
| void setCompany(Company value); |
| |
| /** |
| * Returns the value of the '<em><b>Direct Reports</b></em>' reference list. |
| * The list contents are of type {@link company.Employee}. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Direct Reports</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>Direct Reports</em>' reference list. |
| * @see company.CompanyPackage#getEmployee_DirectReports() |
| * @model transient="true" changeable="false" volatile="true" derived="true" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='company.employees?->select(manager = self)'" |
| * @generated |
| */ |
| EList<Employee> getDirectReports(); |
| |
| /** |
| * Returns the value of the '<em><b>All Reports</b></em>' reference list. |
| * The list contents are of type {@link company.Employee}. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>All Reports</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>All Reports</em>' reference list. |
| * @see company.CompanyPackage#getEmployee_AllReports() |
| * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='Employee.allInstances()->select(reportsTo(self))'" |
| * annotation="http://www.eclipse.org/OCL/Collection nullFree='true'" |
| * @generated |
| */ |
| EList<Employee> getAllReports(); |
| |
| /** |
| * Returns the value of the '<em><b>Reporting Chain</b></em>' reference list. |
| * The list contents are of type {@link company.Employee}. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Reporting Chain</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>Reporting Chain</em>' reference list. |
| * @see company.CompanyPackage#getEmployee_ReportingChain() |
| * @model transient="true" changeable="false" volatile="true" derived="true" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='if manager.oclIsUndefined() then OrderedSet{} else manager?.reportingChain->prepend(manager) endif'" |
| * @generated |
| */ |
| EList<Employee> getReportingChain(); |
| |
| /** |
| * Returns the value of the '<em><b>Has Name As Attribute</b></em>' attribute. |
| * <!-- begin-user-doc --> |
| * <p> |
| * If the meaning of the '<em>Has Name As Attribute</em>' attribute isn't clear, |
| * there really should be more of a description here... |
| * </p> |
| * <!-- end-user-doc --> |
| * @return the value of the '<em>Has Name As Attribute</em>' attribute. |
| * @see company.CompanyPackage#getEmployee_HasNameAsAttribute() |
| * @model transient="true" changeable="false" volatile="true" derived="true" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='name <> null'" |
| * @generated |
| */ |
| boolean isHasNameAsAttribute(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @model required="true" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.reportingChain->includes(manager)'" |
| * @generated |
| */ |
| boolean reportsTo(Employee manager); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='manager.oclIsUndefined() implies directReports->size() > 0'" |
| * @generated |
| */ |
| boolean noManagerImpliesDirectReports(DiagnosticChain diagnostics, Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @model required="true" |
| * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='name <> null'" |
| * @generated |
| */ |
| boolean hasNameAsOperation(); |
| |
| } // Employee |