blob: 39ec77f07e3e1d047fd521c8d6c83e5e3940c570 [file] [log] [blame]
<%if (isImplementation && genFeature.isListType()) {%>
<%if (!UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)).isEmpty()) {%>
/**
* The array of subset feature identifiers for the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
* @ordered
*/
protected static final int[] <%=genFeature.getUpperName()%>_ESUBSETS = <%=UML2GenModelUtil.getSubsetFeatureIDArray(genClass, genFeature, UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature))%>;
<%}%>
<%if (!UML2GenModelUtil.getSupersetGenFeatures(genClass, genFeature, false).isEmpty()) {%>
/**
* The array of superset feature identifiers for the '{@link #<%=genFeature.getGetAccessor()%>() <em><%=genFeature.getFormattedName()%></em>}' <%=genFeature.getFeatureKind()%>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
* @ordered
*/
protected static final int[] <%=genFeature.getUpperName()%>_ESUPERSETS = <%=UML2GenModelUtil.getSupersetFeatureIDArray(genClass, genFeature)%>;
<%}%>
<%}%>
<%if (!genClass.getExtendedGenFeatures().contains(genFeature) && UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) { List<GenFeature> keyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(genFeature);%>
<%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>
<%if (isInterface) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
/**
<%if (!keyGenFeatures.isEmpty()) {%>
<%if (genFeature.isListType()) {%>
* Creates a new {@link <%=genFeature.getQualifiedListItemType(genClass)%>}, with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, and appends it to the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%} else {%>
* Creates a new {@link <%=genFeature.getType(genClass)%>}, with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, and sets the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%}%>
<%} else {%>
<%if (genFeature.isListType()) {%>
* Creates a new {@link <%=genFeature.getQualifiedListItemType(genClass)%>} and appends it to the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%} else {%>
* Creates a new {@link <%=genFeature.getType(genClass)%>} and sets the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%}%>
<%}%>
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
<%for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {%>
* @param <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> The <%=UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index)%> for the new {@link <%=genFeature.getQualifiedListItemType(genClass)%>}, or <code>null</code>.
<%}%>
* @param eClass The Ecore class of the {@link <%=genFeature.getQualifiedListItemType(genClass)%>} to create.
* @return The new {@link <%=genFeature.getQualifiedListItemType(genClass)%>}.
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
*/
<%}%>
<%} else {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%}%>
<%if (!isImplementation) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
<%=genFeature.getListItemType(genClass)%> create<%=genFeature.getCapName()%>(<%if (!keyGenFeatures.isEmpty()) {%><%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>, <%}%><%=genModel.getImportedName("org.eclipse.emf.ecore.EClass")%> eClass);
<%}%>
<%} else { int index = 0;%>
<%if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>
@Override
<%}%>
public <%=genFeature.getListItemType(genClass)%> create<%=genFeature.getCapName()%>(<%if (!keyGenFeatures.isEmpty()) {%><%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>, <%}%><%=genModel.getImportedName("org.eclipse.emf.ecore.EClass")%> eClass)
{
<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%> new<%=genFeature.getCapName()%> = (<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%>) create(eClass);
<%if (genFeature.isListType()) {%>
<%=genFeature.getGetAccessor()%>().add(new<%=genFeature.getCapName()%>);
<%} else {%>
set<%=genFeature.getAccessorName()%>(new<%=genFeature.getCapName()%>);
<%}%>
<%for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {%>
<%if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;%>
<%if (keyGenFeature.isListType()) {%>
int <%=keyGenFeature.getUncapName()%>ListSize = 0;
<%for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {%>
int <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size = <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> == null ? 0 : <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.size();
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size > <%=keyGenFeature.getUncapName()%>ListSize)
<%=keyGenFeature.getUncapName()%>ListSize = <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size;
<%index++;}%>
for (int i = 0; i < <%=keyGenFeature.getUncapName()%>ListSize; i++) {
new<%=genFeature.getCapName()%>.create<%=keyGenFeature.getCapName()%>(<%for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);%><%if (first) { first = false; } else {%>, <%}%>i < <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false)%>Size ? (<%=nestedKeyGenFeature.getImportedType(genClass)%>) <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false)%>.get(i) : null<%}%>);
}
<%} else {%>
new<%=genFeature.getCapName()%>.create<%=keyGenFeature.getCapName()%>(<%for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {%><%if (first) { first = false; } else {%>, <%}%><%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%><%index++;}%>);
<%}%>
<%} else {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null)
<%if (keyGenFeature.isListType()) {%>
new<%=genFeature.getCapName()%>.<%=keyGenFeature.getGetAccessor()%>().addAll(<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>);
<%} else {%>
new<%=genFeature.getCapName()%>.set<%=keyGenFeature.getAccessorName()%>(<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>);
<%}%>
<%index++;}%>
<%}%>
return new<%=genFeature.getCapName()%>;
}
<%}%>
<%}%>
<%if (genClass.getChildrenClasses(genFeature).size() == 1 || !genFeature.getTypeGenClass().isAbstract()) { GenClass childGenClass = genClass.getChildrenClasses(genFeature).get(0);%>
<%if (isInterface) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
/**
<%if (!keyGenFeatures.isEmpty()) {%>
<%if (genFeature.isListType()) {%>
* Creates a new {@link <%=childGenClass.getQualifiedInterfaceName()%>}, with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, and appends it to the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%} else {%>
* Creates a new {@link <%=childGenClass.getQualifiedInterfaceName()%>},with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, and sets the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%}%>
<%} else {%>
<%if (genFeature.isListType()) {%>
* Creates a new {@link <%=childGenClass.getQualifiedInterfaceName()%>} and appends it to the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%} else {%>
* Creates a new {@link <%=childGenClass.getQualifiedInterfaceName()%>} and sets the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
<%}%>
<%}%>
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
<%for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {%>
* @param <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> The <%=UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index)%> for the new {@link <%=genFeature.getQualifiedListItemType(genClass)%>}, or <code>null</code>.
<%}%>
* @return The new {@link <%=childGenClass.getQualifiedInterfaceName()%>}.
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
*/
<%}%>
<%} else {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%}%>
<%if (!isImplementation) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
<%=genFeature.getListItemType(genClass)%> create<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>);
<%}%>
<%} else { int index = 0;%>
<%if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>
@Override
<%}%>
public <%=genFeature.getListItemType(genClass)%> create<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>)
{
<%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>
return create<%=genFeature.getCapName()%>(<%if (!keyGenFeatures.isEmpty()) {%><%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false)%>, <%}%><%=genFeature.getTypeGenClass().getQualifiedClassifierAccessor()%>);
<%} else {%>
<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%> new<%=genFeature.getCapName()%> = (<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%>) create(<%=genFeature.getTypeGenClass().getQualifiedClassifierAccessor()%>);
<%if (genFeature.isListType()) {%>
<%=genFeature.getGetAccessor()%>().add(new<%=genFeature.getCapName()%>);
<%} else {%>
set<%=genFeature.getAccessorName()%>(new<%=genFeature.getCapName()%>);
<%}%>
<%for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {%>
<%if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;%>
<%if (keyGenFeature.isListType()) {%>
int <%=keyGenFeature.getUncapName()%>ListSize = 0;
<%for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {%>
int <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size = <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> == null ? 0 : <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.size();
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size > <%=keyGenFeature.getUncapName()%>ListSize)
<%=keyGenFeature.getUncapName()%>ListSize = <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>Size;
<%index++;}%>
for (int i = 0; i < <%=keyGenFeature.getUncapName()%>ListSize; i++) {
new<%=genFeature.getCapName()%>.create<%=keyGenFeature.getCapName()%>(<%for (int n = nestedKeyGenFeatures.size(); n > 0; n--) { GenFeature nestedKeyGenFeature = nestedKeyGenFeatures.get(nestedKeyGenFeatures.size() - n);%><%if (first) { first = false; } else {%>, <%}%>i < <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false)%>Size ? (<%=nestedKeyGenFeature.getImportedType(genClass)%>) <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index - n, false)%>.get(i) : null<%}%>);
}
<%} else {%>
new<%=genFeature.getCapName()%>.create<%=keyGenFeature.getCapName()%>(<%for (int n = 0; n < nestedKeyGenFeatures.size(); n++) {%><%if (first) { first = false; } else {%>, <%}%><%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%><%index++;}%>);
<%}%>
<%} else {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null)
<%if (keyGenFeature.isListType()) {%>
new<%=genFeature.getCapName()%>.<%=keyGenFeature.getGetAccessor()%>().addAll(<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>);
<%} else {%>
new<%=genFeature.getCapName()%>.set<%=keyGenFeature.getAccessorName()%>(<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>);
<%}%>
<%index++;}%>
<%}%>
return new<%=genFeature.getCapName()%>;
<%}%>
}
<%}%>
<%}%>
<%}%>
<%if (!genClass.getExtendedGenFeatures().contains(genFeature) && genFeature.isListType() && genFeature.isReferenceType()) { List<GenFeature> keyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(genFeature);%>
<%if (!keyGenFeatures.isEmpty()) {%>
<%if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature) || UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>
<%if (isInterface) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
/**
* Retrieves the first {@link <%=genFeature.getQualifiedListItemType(genClass)%>} with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%> from the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
<%for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {%>
* @param <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> The <%=UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index)%> of the {@link <%=genFeature.getQualifiedListItemType(genClass)%>} to retrieve, or <code>null</code>.
<%}%>
* @return The first {@link <%=genFeature.getQualifiedListItemType(genClass)%>} with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, or <code>null</code>.
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
*/
<%}%>
<%} else {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%}%>
<%if (!isImplementation) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
<%=genFeature.getListItemType(genClass)%> get<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>);
<%}%>
<%} else {%>
<%if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>
@Override
<%}%>
public <%=genFeature.getListItemType(genClass)%> get<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%>)
{
return get<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false)%><%if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {%>, false<%}%><%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>, null<%}%><%if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>, false<%}%>);
}
<%}%>
<%}%>
<%if (isInterface) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
/**
* Retrieves the first {@link <%=genFeature.getQualifiedListItemType(genClass)%>} with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%> from the '<em><b><%=genFeature.getFormattedName()%></b></em>' <%=genFeature.getFeatureKind()%>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
<%for (int index = 0, size = keyGenFeatures.size(); index < size; index++) {%>
* @param <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> The <%=UML2GenModelUtil.getFormattedKeyFeatureName(genFeature, index)%> of the {@link <%=genFeature.getQualifiedListItemType(genClass)%>} to retrieve, or <code>null</code>.
<%}%>
<%if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {%>
* @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
<%}%>
<%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>
* @param eClass The Ecore class of the {@link <%=genFeature.getQualifiedListItemType(genClass)%>} to retrieve, or <code>null</code>.
<%}%>
<%if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>
* @param createOnDemand Whether to create a {@link <%=genFeature.getQualifiedListItemType(genClass)%>} on demand if not found.
<%}%>
* @return The first {@link <%=genFeature.getQualifiedListItemType(genClass)%>} with the specified <%=UML2GenModelUtil.getFormattedKeyFeatureNames(genFeature)%>, or <code>null</code>.
* @see #<%=genFeature.getGetAccessor()%>()
* @generated
*/
<%}%>
<%} else {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
<%}%>
<%if (!isImplementation) {%>
<%if (!genFeature.isSuppressedGetVisibility()) {%>
<%=genFeature.getListItemType(genClass)%> get<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%><%if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {%>, boolean ignoreCase<%}%><%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>, <%=genModel.getImportedName("org.eclipse.emf.ecore.EClass")%> eClass<%}%><%if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>, boolean createOnDemand<%}%>);
<%}%>
<%} else { int index = 0;%>
<%if (genModel.useClassOverrideAnnotation() && UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>
@Override
<%}%>
public <%=genFeature.getListItemType(genClass)%> get<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature)%><%if (UML2GenModelUtil.hasStringTypeKeyGenFeature(genFeature)) {%>, boolean ignoreCase<%}%><%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>, <%=genModel.getImportedName("org.eclipse.emf.ecore.EClass")%> eClass<%}%><%if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>, boolean createOnDemand<%}%>)
{
<%if (isJDK50) {%>
<%=genFeature.getUncapName()%>Loop: for (<%=genModel.getImportedName(genFeature.getListItemType(genClass))%> <%=genFeature.getUncapName()%> : <%=genFeature.getGetAccessor()%>())
{
<%} else {%>
<%=genFeature.getUncapName()%>Loop: for (<%=genModel.getImportedName("java.util.Iterator")%> i = <%=genFeature.getGetAccessor()%>().iterator(); i.hasNext(); )
{
<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%> <%=genFeature.getUncapName()%> = (<%=genModel.getImportedName(genFeature.getQualifiedListItemType(genClass))%>) i.next();
<%}%>
<%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>
if (eClass != null && !eClass.isInstance(<%=genFeature.getUncapName()%>))
continue <%=genFeature.getUncapName()%>Loop;
<%}%>
<%for (GenFeature keyGenFeature : UML2GenModelUtil.getKeyGenFeatures(genFeature.getTypeGenClass())) {%>
<%if (keyGenFeature.isContains()) { List<GenFeature> nestedKeyGenFeatures = UML2GenModelUtil.getKeyGenFeatures(keyGenFeature.getTypeGenClass(), false); boolean first = true;%>
<%if (keyGenFeature.isListType()) {%>
<%=keyGenFeature.getImportedType(genClass)%> <%=keyGenFeature.getUncapName()%>List = <%=genFeature.getUncapName()%>.<%=keyGenFeature.getGetAccessor()%>();
int <%=keyGenFeature.getUncapName()%>ListSize = <%=keyGenFeature.getUncapName()%>List.size();
if (<%for (int n = 0, size = nestedKeyGenFeatures.size(); n < size; n++) {%><%if (!first) {%> || (<%}%><%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false)%> != null && <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index + n, false)%>.size() != <%=keyGenFeature.getUncapName()%>ListSize<%if (first) {first = false;%><%} else {%>)<%}%><%}%>)
continue <%=genFeature.getUncapName()%>Loop;
for (int j = 0; j < <%=keyGenFeature.getUncapName()%>ListSize; j++)
{
<%=genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass))%> <%=keyGenFeature.getUncapName()%> = <%if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {%>(<%=genModel.getImportedName(keyGenFeature.getQualifiedListItemType(genClass))%>) <%}%><%=keyGenFeature.getUncapName()%>List.get(j);
<%for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {%>
<%if (nestedKeyGenFeature.isStringType()) {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !(ignoreCase ? (<%if (genModel.getComplianceLevel().getValue() < GenJDKLevel.JDK50) {%>(<%=genModel.getImportedName("java.lang.String")%>)<%}%><%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.get(j)).equalsIgnoreCase(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>()) : <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.get(j).equals(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>())))
<%} else {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.get(j).equals(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>()))
<%}%>
continue <%=genFeature.getUncapName()%>Loop;
<%index++;}%>
}
<%} else {%>
<%=keyGenFeature.getImportedType(genClass)%> <%=keyGenFeature.getUncapName()%> = <%=genFeature.getUncapName()%>.<%=keyGenFeature.getGetAccessor()%>();
if (<%=keyGenFeature.getUncapName()%> == null)
continue <%=genFeature.getUncapName()%>Loop;
<%for (GenFeature nestedKeyGenFeature : nestedKeyGenFeatures) {%>
<%if (nestedKeyGenFeature.isStringType()) {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !(ignoreCase ? <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equalsIgnoreCase(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>()) : <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equals(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>())))
<%} else {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equals(<%=keyGenFeature.getUncapName()%>.<%=nestedKeyGenFeature.getGetAccessor()%>()))
<%}%>
continue <%=genFeature.getUncapName()%>Loop;
<%index++;}%>
<%}%>
<%} else {%>
<%if (keyGenFeature.isStringType()) {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !(ignoreCase ? <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equalsIgnoreCase(<%=genFeature.getUncapName()%>.<%=keyGenFeature.getGetAccessor()%>()) : <%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equals(<%=genFeature.getUncapName()%>.<%=keyGenFeature.getGetAccessor()%>())))
<%} else {%>
if (<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%> != null && !<%=UML2GenModelUtil.getKeyFeatureParameter(genClass, genFeature, index, false)%>.equals(<%=genFeature.getUncapName()%>.<%=keyGenFeature.getGetAccessor()%>()))
<%}%>
continue <%=genFeature.getUncapName()%>Loop;
<%index++;}%>
<%}%>
return <%=genFeature.getUncapName()%>;
}
<%if (UML2GenModelUtil.isFactoryMethods(genClass, genFeature)) {%>
return createOnDemand<%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%> && eClass != null<%}%> ? create<%=genFeature.getCapName()%>(<%=UML2GenModelUtil.getKeyFeatureParameters(genClass, genFeature, false)%><%if (genClass.getChildrenClasses(genFeature).size() > 1 || genFeature.getTypeGenClass().isAbstract()) {%>, eClass<%}%>) : null;
<%} else {%>
return null;
<%}%>
}
<%}%>
<%}%>
<%}%>
<%if (isImplementation && ((UML2GenModelUtil.isRedefinition(genFeature) && !genFeature.isIsSet()) || UML2GenModelUtil.isRedefined(genClass, genFeature))) {%>
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isSet<%=genFeature.getAccessorName()%>()
{
<%if (!genFeature.isUnsettable()) {%>
<%if (UML2GenModelUtil.isRedefined(genClass, genFeature)) {%>
return false;
<%} else if (genModel.isReflectiveDelegation()) {%>
return eIsSet(<%=genFeature.getQualifiedFeatureAccessor()%>);
<%} else if (genFeature.isListType()) {%>
<%if (genFeature.isWrappedFeatureMapType()) {%>
<%if (genFeature.isVolatile()) {%>
return !((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)<%=genFeature.getGetAccessor()%>()).featureMap().isEmpty();
<%} else {%>
return <%=genFeature.getSafeName()%> != null && !<%=genFeature.getSafeName()%>.featureMap().isEmpty();
<%}%>
<%} else {%>
<%if (genClass.isField(genFeature)) {%>
return <%=genFeature.getSafeName()%> != null && !<%=genFeature.getSafeName()%>.isEmpty();
<%} else {%>
<%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
<%=genFeature.getImportedType(genClass)%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType(genClass)%>)eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>);
return <%=genFeature.getSafeName()%> != null && !<%=genFeature.getSafeName()%>.isEmpty();
<%} else {%>
return !<%=genFeature.getGetAccessor()%>().isEmpty();
<%}%>
<%}%>
<%}%>
<%} else if (genFeature.isResolveProxies()) {%>
<%if (genClass.isField(genFeature)) {%>
return <%=genFeature.getSafeName()%> != null;
<%} else {%>
<%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
return eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>) != null;
<%} else {%>
return basicGet<%=genFeature.getAccessorName()%>() != null;
<%}%>
<%}%>
<%} else if (genFeature.isReferenceType()) {%>
<%if (genClass.isField(genFeature)) {%>
return <%=genFeature.getSafeName()%> != null;
<%} else {%>
<%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
return eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>) != null;
<%} else {%>
return <%=genFeature.getGetAccessor()%>() != null;
<%}%>
<%}%>
<%} else if (genFeature.isPrimitiveType() || genFeature.isEnumType()) {%>
<%if (genClass.isField(genFeature)) {%>
<%if (genClass.isFlag(genFeature)) {%>
<%if (genFeature.isBooleanType()) {%>
return ((<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != 0) != <%=genFeature.getEDefault()%>;
<%} else {%>
return (<%=genClass.getFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_EFLAG) != <%=genFeature.getUpperName()%>_EFLAG_DEFAULT;
<%}%>
<%} else {%>
return <%=genFeature.getSafeName()%> != <%=genFeature.getEDefault()%>;
<%}%>
<%} else {%>
<%if (genFeature.isEnumType() && genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
return eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>, <%=genFeature.getEDefault()%>) != <%=genFeature.getEDefault()%>;
<%} else {%>
return <%=genFeature.getGetAccessor()%>() != <%=genFeature.getEDefault()%>;
<%}%>
<%}%>
<%} else {//datatype%>
<%if (genClass.isField(genFeature)) {%>
return <%=genFeature.getEDefault()%> == null ? <%=genFeature.getSafeName()%> != null : !<%=genFeature.getEDefault()%>.equals(<%=genFeature.getSafeName()%>);
<%} else {%>
<%if (genFeature.isField() && genClass.getImplementingGenModel(genFeature).isVirtualDelegation()) {%>
<%=genFeature.getImportedType(genClass)%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType(genClass)%>)eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>, <%=genFeature.getEDefault()%>);
return <%=genFeature.getEDefault()%> == null ? <%=genFeature.getSafeName()%> != null : !<%=genFeature.getEDefault()%>.equals(<%=genFeature.getSafeName()%>);
<%} else {%>
return <%=genFeature.getEDefault()%> == null ? <%=genFeature.getGetAccessor()%>() != null : !<%=genFeature.getEDefault()%>.equals(<%=genFeature.getGetAccessor()%>());
<%}%>
<%}%>
<%}%>
<%} else {%>
<%if (genModel.isReflectiveDelegation()) {%>
return eIsSet(<%=genFeature.getQualifiedFeatureAccessor()%>);
<%} else if (!genFeature.isVolatile()) {%>
<%if (genFeature.isListType()) {%>
<%if (genModel.isVirtualDelegation()) {%>
<%=genFeature.getImportedType(genClass)%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType(genClass)%>)eVirtualGet(<%=genClass.getQualifiedFeatureID(genFeature)%>);
<%}%>
return <%=genFeature.getSafeName()%> != null && ((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.InternalEList")%>.Unsettable<%=singleWildcard%>)<%=genFeature.getSafeName()%>).isSet();
<%} else {%>
<%if (genModel.isVirtualDelegation() && !genFeature.isPrimitiveType()) {%>
return eVirtualIsSet(<%=genClass.getQualifiedFeatureID(genFeature)%>);
<%} else if (genClass.isESetFlag(genFeature)) {%>
return (<%=genClass.getESetFlagsField(genFeature)%> & <%=genFeature.getUpperName()%>_ESETFLAG) != 0;
<%} else {%>
return <%=genFeature.getUncapName()%>ESet;
<%}%>
<%}%>
<%} else if (genFeature.hasDelegateFeature()) { GenFeature delegateFeature = genFeature.getDelegateFeature();%>
<%if (delegateFeature.isWrappedFeatureMapType()) {%>
return !((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal.Wrapper)get<%=delegateFeature.getAccessorName()%>()).featureMap()).isEmpty(<%=genFeature.getQualifiedFeatureAccessor()%>);
<%} else {%>
return !((<%=genModel.getImportedName("org.eclipse.emf.ecore.util.FeatureMap")%>.Internal)get<%=delegateFeature.getAccessorName()%>()).isEmpty(<%=genFeature.getQualifiedFeatureAccessor()%>);
<%}%>
<%} else {%>
<%@ include file="isSetGenFeature.TODO.override.javajetinc" fail="alternative" %>
<%@ start %>
// TODO: implement this method to return whether the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%> is set
// Ensure that you remove @generated or mark it @generated NOT
throw new UnsupportedOperationException();
<%@ end %><%//isSetGenFeature.todo.override.javajetinc%>
<%}%>
<%}%>
}
<%}%>