From: Peter F. <fr...@us...> - 2005-08-08 12:25:18
|
User: freter Date: 05/08/08 05:25:12 Modified: modellingtools/together/org.andromda.modules.xmilink/src/org/andromda/modules/xmilink/links UML20AssociatesLinkExportStrategy.java Log: Export association end visibility. Revision Changes Path 1.2 +66 -2 contrib/modellingtools/together/org.andromda.modules.xmilink/src/org/andromda/modules/xmilink/links/UML20AssociatesLinkExportStrategy.java Index: UML20AssociatesLinkExportStrategy.java =================================================================== RCS file: /cvsroot/andromda/contrib/modellingtools/together/org.andromda.modules.xmilink/src/org/andromda/modules/xmilink/links/UML20AssociatesLinkExportStrategy.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- UML20AssociatesLinkExportStrategy.java 21 Jun 2005 08:25:47 -0000 1.1 +++ UML20AssociatesLinkExportStrategy.java 8 Aug 2005 12:25:12 -0000 1.2 @@ -6,6 +6,7 @@ import org.apache.commons.lang.StringUtils; import com.togethersoft.openapi.model.elements.Entity; +import com.togethersoft.openapi.model.elements.Property; import com.togethersoft.openapi.model.elements.UniqueName; /** @@ -35,7 +36,7 @@ * * @see org.andromda.modules.xmilink.uml14.UMLEntityExportStrategy#getEntityName() */ - protected String getEntityName() + protected String getEntityName(Entity entity) { return "UML:Association"; } @@ -112,6 +113,7 @@ // ExportContext.getWriter().writeProperty("xmi.idref", id); // } exportRoleName(entity, kind); + exportVisibility(entity, kind); exportNavigability(entity, kind); exportAggregation(entity, kind); ExportContext.getWriter().writeOpeningElementEnd(false); @@ -136,7 +138,6 @@ protected boolean doExportTaggedValue(String key, String value) { - System.out.println("key: " + key); if (key.startsWith("@supplier.")) { return (kind == TARGET); @@ -225,6 +226,69 @@ * @param entity * @param kind */ + private void exportVisibility(Entity entity, + int kind) + { + Property visibilityProperty; + if (kind == TARGET) + { + if (entity.hasProperty("clientVisibility")) + { + visibilityProperty = entity.getProperty("clientVisibility"); + ExportContext.getWriter().writeProperty("visibility", translateVisibility(visibilityProperty)); + } + } + else if (kind == SOURCE) + { + if (entity.hasProperty("supplierVisibility")) + { + visibilityProperty = entity.getProperty("supplierVisibility"); + ExportContext.getWriter().writeProperty("visibility", translateVisibility(visibilityProperty)); + } + } + } + + /** + * Translates the visbility property into the correct XMI representation. + * + * @param property The property to translate. + * @return <code>public</code>, <code>protected</code>, <code>private</code> + */ + private String translateVisibility(Property property) + { + String value = property.getValue(); + String result = ""; + if ("$supplierPublic".equalsIgnoreCase(value)) + { + result = "public"; + } + else if ("$supplierProtected".equalsIgnoreCase(value)) + { + result = "protected"; + } + else if ("$supplierPrivate".equalsIgnoreCase(value)) + { + result = "private"; + } + else if ("$clientPublic".equalsIgnoreCase(value)) + { + result = "public"; + } + else if ("$clientProtected".equalsIgnoreCase(value)) + { + result = "protected"; + } + else if ("$clientPrivate".equalsIgnoreCase(value)) + { + result = "private"; + } + return result; + } + + /** + * @param entity + * @param kind + */ private void exportNavigability(Entity entity, int kind) { |