mapping of tags fixed BLD200306170100
authormmatula@netbeans.org
Mon, 16 Jun 2003 21:40:39 +0000
changeset 12964d29e3f8911e
parent 1295 55595034efdc
child 1297 20d15d8d6ac4
mapping of tags fixed
mdr/extras/uml2mof/src/org/netbeans/lib/jmi/uml2mof/Transformer.java
     1.1 --- a/mdr/extras/uml2mof/src/org/netbeans/lib/jmi/uml2mof/Transformer.java	Fri Jun 06 15:28:57 2003 +0000
     1.2 +++ b/mdr/extras/uml2mof/src/org/netbeans/lib/jmi/uml2mof/Transformer.java	Mon Jun 16 21:40:39 2003 +0000
     1.3 @@ -513,10 +513,7 @@
     1.4      private String getTagValue(ModelElement element, String tagName, String defaultValue) {
     1.5          for (Iterator it = element.getTaggedValue().iterator(); it.hasNext();) {
     1.6              TaggedValue tag = (TaggedValue) it.next();
     1.7 -            String temp = tag.getName();
     1.8 -            if (tag.getType() != null && tag.getType().getTagType() != null) {
     1.9 -                temp = tag.getType().getTagType();
    1.10 -            }
    1.11 +            String temp = getTagName(tag);
    1.12              if (tagName.equals(temp)) {
    1.13                  return (String) tag.getDataValue().iterator().next();
    1.14              }
    1.15 @@ -524,13 +521,23 @@
    1.16          return defaultValue;
    1.17      }
    1.18      
    1.19 +    private String getTagName(TaggedValue tag) {
    1.20 +        String temp = tag.getName();
    1.21 +        if (temp == null && tag.getType() != null) {
    1.22 +            // this is a workaround for a bug in Poseidon's tag serialization
    1.23 +            // (in version 1.5 it uses TagType instead of Name)
    1.24 +            temp = tag.getType().getTagType();
    1.25 +            if (temp == null || temp.indexOf('.') < 0) {
    1.26 +                temp = tag.getType().getName();
    1.27 +            }
    1.28 +        }
    1.29 +        return temp;
    1.30 +    }        
    1.31 +    
    1.32      private ArrayList getTagValues(ModelElement element, String tagName) {
    1.33          for (Iterator it = element.getTaggedValue().iterator(); it.hasNext();) {
    1.34              TaggedValue tag = (TaggedValue) it.next();
    1.35 -            String temp = tag.getName();
    1.36 -            if (temp == null && tag.getType() != null) {
    1.37 -                temp = tag.getType().getTagType();
    1.38 -            }
    1.39 +            String temp = getTagName(tag);
    1.40              if (tagName.equals(temp)) {
    1.41                  return new ArrayList(tag.getDataValue());
    1.42              }
    1.43 @@ -542,10 +549,7 @@
    1.44          // iterate through tagged values
    1.45          for (Iterator it = umlElement.getTaggedValue().iterator(); it.hasNext();) {
    1.46              TaggedValue tag = (TaggedValue) it.next();
    1.47 -            String tagName = tag.getName();
    1.48 -            if (tagName == null && tag.getType() != null) {
    1.49 -                tagName = tag.getType().getTagType();
    1.50 -            }
    1.51 +            String tagName = getTagName(tag);
    1.52              mapTag(tagName, tag, mofElement);
    1.53          }
    1.54      }