diff options
Diffstat (limited to 'plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc')
-rw-r--r-- | plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc index 240d31a3..d578d768 100644 --- a/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc +++ b/plugins/org.eclipse.uml2.codegen.ecore/templates/model/Class/getGenFeature.TODO.override.javajetinc @@ -13,6 +13,82 @@ } <%}%> return <%=UML2GenModelUtil.getImportedOperationsClassName(opClass)%>.<%=genOperation.getName()%>(this); + <%} else if (UML2GenModelUtil.getImplementedUnionGenFeatures(genClass).contains(genFeature)) {%> + <%if (genFeature.isListType()) {%> + <%if (UML2GenModelUtil.isDerivedUnionListType(genClass, genFeature)) {%> + <%if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genFeature)) {%> + <%=genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter")%> cache = getCacheAdapter(); + if (cache != null) { + <%=genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource")%> eResource = eResource(); + <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>) cache.get(eResource, this, <%=genFeature.getQualifiedFeatureAccessor()%>); + if (<%=genFeature.getSafeName()%> == null) + { + cache.put(eResource, this, <%=genFeature.getQualifiedFeatureAccessor()%>, <%=genFeature.getSafeName()%> = new <%=genClass.getListConstructor(genFeature)%>); + } + return <%=genFeature.getSafeName()%>; + } + <%}%> + return new <%=genClass.getListConstructor(genFeature)%>; + <%} else {%> + <%if (UML2GenModelUtil.isCacheAdapterSupport(genModel) && UML2GenModelUtil.isCached(genFeature)) {%> + <%=genModel.getImportedName("org.eclipse.uml2.common.util.CacheAdapter")%> cache = getCacheAdapter(); + if (cache != null) { + <%if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%> + try + { + <%=genModel.getImportedName("java.lang.reflect.Method")%> method = getClass().getMethod("<%=genFeature.getGetAccessor()%>", null);<%=genModel.getNonNLS()%> + <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>) cache.get(eResource(), this, method); + if (<%=genFeature.getSafeName()%> == null) + { + <%=genModel.getImportedName("java.util.List")%> union = <%=genFeature.getGetAccessor()%>Helper(new <%=genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList")%>.FastCompare()); + cache.put(eResource(), this, method, <%=genFeature.getSafeName()%> = new <%=genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList")%>(this, <%if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>null<%} else {%><%=genFeature.getQualifiedFeatureAccessor()%><%}%>, union.size(), union.toArray())); + } + return <%=genFeature.getSafeName()%>; + } + catch (<%=genModel.getImportedName("java.lang.NoSuchMethodException")%> nsme) + { + // ignore + } + <%} else {%> + <%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>) cache.get(eResource(), this, <%=genFeature.getQualifiedFeatureAccessor()%>); + if (<%=genFeature.getSafeName()%> == null) + { + <%=genModel.getImportedName("java.util.List")%> union = <%=genFeature.getGetAccessor()%>Helper(new <%=genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList")%>.FastCompare()); + cache.put(eResource(), this, <%=genFeature.getQualifiedFeatureAccessor()%>, <%=genFeature.getSafeName()%> = new <%=genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList")%>(this, <%if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>null<%} else {%><%=genFeature.getQualifiedFeatureAccessor()%><%}%>, union.size(), union.toArray())); + } + return <%=genFeature.getSafeName()%>; + <%}%> + } + <%}%> + <%=genModel.getImportedName("java.util.List")%> union = <%=genFeature.getGetAccessor()%>Helper(new <%=genModel.getImportedName("org.eclipse.emf.common.util.UniqueEList")%>.FastCompare()); + return new <%=genModel.getImportedName("org.eclipse.uml2.common.util.UnionEObjectEList")%>(this, <%if (UML2GenModelUtil.isDuplicate(genFeature) && !UML2GenModelUtil.isRedefinition(genFeature)) {%>null<%} else {%><%=genFeature.getQualifiedFeatureAccessor()%><%}%>, union.size(), union.toArray()); + <%}%> + <%} else {%> + <%for (Iterator j = UML2GenModelUtil.getSubsetGenFeatures(genClass, genFeature).iterator(); j.hasNext();) { GenFeature subsetGenFeature = (GenFeature) j.next();%> + <%if (!genClass.getExtendedGenFeatures().contains(subsetGenFeature)) {%> + <%if (subsetGenFeature.isIsSet() || UML2GenModelUtil.isUnion(subsetGenFeature) || UML2GenModelUtil.isRedefinition(subsetGenFeature) || UML2GenModelUtil.isRedefined(genClass, subsetGenFeature)) {%> + if (isSet<%=subsetGenFeature.getAccessorName()%>()) + { + return <%=subsetGenFeature.getGetAccessor()%>(); + } + <%} else {%> + <%if (genClass.isField(subsetGenFeature) && !subsetGenFeature.isBasicGet()) {%> + if (eIsSet(<%=genClass.getQualifiedFeatureID(subsetGenFeature)%>)) + { + return <%=subsetGenFeature.getGetAccessor()%>(); + } + <%} else {%> + <%=subsetGenFeature.getImportedType()%> <%=subsetGenFeature.getSafeName()%> = <%=subsetGenFeature.getGetAccessor()%>(); + if (<%=subsetGenFeature.getSafeName()%> != null) + { + return <%=subsetGenFeature.getSafeName()%>; + } + <%}%> + <%}%> + <%}%> + <%}%> + return <%if (genClass.getExtendedGenFeatures().contains(genFeature)) {%>super.<%=genFeature.getGetAccessor()%>()<%} else {%>null<%}%>; + <%}%> <%} else {%> // TODO: implement this method to return the '<%=genFeature.getFormattedName()%>' <%=genFeature.getFeatureKind()%> // Ensure that you remove @generated or mark it @generated NOT |