blob: e8ea606c9bc8d8c91d86186528bb262de23d73d0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 David Carlson and others.
* 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:
* David Carlson (Clinical Cloud Solutions, LLC) - initial API and implementation
*******************************************************************************/
/**
*/
package org.eclipse.mdht.uml.aml.terminology;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.uml2.uml.EnumerationLiteral;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Archetype Term</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.mdht.uml.aml.terminology.ArchetypeTerm#getValue_set_members <em>Value set members</em>}</li>
* <li>{@link org.eclipse.mdht.uml.aml.terminology.ArchetypeTerm#getTerm_bindings <em>Term bindings</em>}</li>
* </ul>
*
* @see org.eclipse.mdht.uml.aml.terminology.TerminologyPackage#getArchetypeTerm()
* @model
* @generated
*/
public interface ArchetypeTerm extends PermissibleValue {
/**
* Returns the value of the '<em><b>Value set members</b></em>' reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.EnumerationLiteral}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Value set members</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>Value set members</em>' reference list.
* @see org.eclipse.mdht.uml.aml.terminology.TerminologyPackage#getArchetypeTerm_Value_set_members()
* @model ordered="false"
* @generated
*/
EList<EnumerationLiteral> getValue_set_members();
/**
* Retrieves the first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>' from the '<em><b>Value set members</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.EnumerationLiteral} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getValue_set_members()
* @generated
*/
EnumerationLiteral getValue_set_members(String name);
/**
* Retrieves the first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>' from the '<em><b>Value set members</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.EnumerationLiteral} to retrieve, or <code>null</code>.
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
* @return The first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getValue_set_members()
* @generated
*/
EnumerationLiteral getValue_set_members(String name, boolean ignoreCase);
/**
* Returns the value of the '<em><b>Term bindings</b></em>' reference list.
* The list contents are of type {@link org.eclipse.uml2.uml.EnumerationLiteral}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Term bindings</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>Term bindings</em>' reference list.
* @see org.eclipse.mdht.uml.aml.terminology.TerminologyPackage#getArchetypeTerm_Term_bindings()
* @model ordered="false"
* @generated
*/
EList<EnumerationLiteral> getTerm_bindings();
/**
* Retrieves the first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>' from the '<em><b>Term bindings</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.EnumerationLiteral} to retrieve, or <code>null</code>.
* @return The first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getTerm_bindings()
* @generated
*/
EnumerationLiteral getTerm_bindings(String name);
/**
* Retrieves the first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>' from the '<em><b>Term bindings</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.EnumerationLiteral} to retrieve, or <code>null</code>.
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
* @return The first {@link org.eclipse.uml2.uml.EnumerationLiteral} with the specified '<em><b>Name</b></em>', or <code>null</code>.
* @see #getTerm_bindings()
* @generated
*/
EnumerationLiteral getTerm_bindings(String name, boolean ignoreCase);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.base_EnumerationLiteral.namespace.oclAsType(Enumeration).namespace.oclAsType(Package).ownedType
* ->select(t|t.stereotypedBy('ResourceTranslation')).oclAsType(Enumeration)
* ->forAll(sibling|sibling.ownedLiteral->exists(ol|ol.appliedStereotype('IdEntry').oclAsType(IdEntry).ref=self.base_EnumerationLiteral))
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTLC- language consistency'"
* @generated
*/
boolean validateAOMVTLClanguageconsistency(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* This [AOM] Validity Rule is definitional in AML.
* The definition of the identifying code of a value set is an Archetype Term which has a non-empty value for the value_set_members tag.
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTVSID- value-set id defined'"
* @generated
*/
boolean validateAOMVTVSIDvaluesetiddefined(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.value_set_members->forAll(member|member.namespace=self.base_EnumerationLiteral.namespace)
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTVSUQ- value-set members unique'"
* @generated
*/
boolean validateAOMVTVSUQvaluesetmembersunique(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.value_set_members->forAll(member|member.namespace=self.base_EnumerationLiteral.namespace)
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTVSMD- value-set members defined'"
* @generated
*/
boolean validateAOMVTVSMDvaluesetmembersdefined(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* not(self.base_EnumerationLiteral.name.oclIsUndefined())
* and(self.base_EnumerationLiteral.name<>'')
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] ARCHETYPE_TERM:Invariant:code_valid_code'"
* @generated
*/
boolean validateAOMARCHETYPETERMInvariantcodeValidCode(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* In AML, the [AOM] Constraint is definitional; the ArchetypeTerm name is an Identifier Definition id as well as the Value Set definition.
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VALUE_SET:Invariant:Id_valid'"
* @generated
*/
boolean validateAOMVALUESETInvariantIdValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.value_set_members->forAll(m|m.namespace=self.base_EnumerationLiteral.namespace)
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VALUE_SET:Invariant:Members_valid'"
* @generated
*/
boolean validateAOMVALUESETInvariantMembersValid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.term_bindings
* ->forAll(binding|
* binding.stereotypedBy('ConceptReference')
* and (binding.namespace.namespace.namespace=self.base_EnumerationLiteral.namespace.namespace.namespace)
* )
*
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] ARCHETYPE_TERMINOLOGY:Invariant:term_bindings_validity'"
* @generated
*/
boolean validateAOMARCHETYPETERMINOLOGYInvarianttermBindingsValidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.term_bindings->forAll(b|b.namespace.namespace.name='term_bindings')
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VETDF- external term validity'"
* @generated
*/
boolean validateAOMVETDFexternaltermvalidity(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.term_bindings->forAll(b|b.namespace.namespace.name='term_bindings')
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTCBK- terminology constraint binding key valid'"
* @generated
*/
boolean validateAOMVTCBKterminologyconstraintbindingkeyvalid(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* Term or constraint code defined in archetype terminology must be of the same or a less specialized level then the specialization level of the Archetype. 
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTSD- specialisation level of codes'"
* @generated
*/
boolean validateAOMVTSDspecialisationlevelofcodes(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* self.term_bindings->forAll(b|b.namespace.namespace.name='term_bindings')
*
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='[AOM] VTTBK- terminology term binding key valid'"
* @generated
*/
boolean validateAOMVTTBKterminologytermbindingkeyvalid(DiagnosticChain diagnostics, Map<Object, Object> context);
} // ArchetypeTerm