diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java b/src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java similarity index 87% rename from src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java rename to src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java index ecb984f24b5a1b6fdaef7d81e75a6557eda113b6..bcf28bcfafd84cc7bdf8c2a655f378fa22a92341 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java +++ b/src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java @@ -1,8 +1,4 @@ -package avatartranslator.tosysmlv2; - -import avatartranslator.AvatarAttribute; -import avatartranslator.AvatarDataType; -import avatartranslator.AvatarType; +package avatartranslator; import java.util.ArrayList; import java.util.HashMap; @@ -12,7 +8,7 @@ public class AvatarDataTypePrimitiveFields { public static class Field { private String name; private AvatarType type; - protected Field(String _name, AvatarType _type) { + public Field(String _name, AvatarType _type) { name = _name; type = _type; } @@ -23,7 +19,7 @@ public class AvatarDataTypePrimitiveFields { public AvatarDataTypePrimitiveFields() { fields = new ArrayList<Field>(); } - public int getSize() { return fields.size(); } + public int size() { return fields.size(); } public boolean addField (String name, AvatarType type) { if(name == null || type == null) return false; for(Field f : fields) if (f.getName().equals(name)) return false; @@ -43,6 +39,11 @@ public class AvatarDataTypePrimitiveFields { aa = dt.getAttributes().get(i); if (aa.getType() == AvatarType.INTEGER) primitiveFields.addField(aa.getName(), AvatarType.INTEGER); else if (aa.getType() == AvatarType.BOOLEAN) primitiveFields.addField(aa.getName(), AvatarType.BOOLEAN); + else if (aa.getType() == AvatarType.TIMER) { + if (err != null) err.add("type timer unauthorized for field " + aa.getName() + " in datatype " + dt.getName() + + "(set to integer)"); + primitiveFields.addField(aa.getName(), AvatarType.INTEGER); + } else { AvatarDataType adt = aa.getDataType(); if (adt == null) { @@ -69,7 +70,7 @@ public class AvatarDataTypePrimitiveFields { buildPrimitiveFields(adt, map, l, err); l.remove(l.size() - 1); AvatarDataTypePrimitiveFields fields = map.get(adt); - for (int j = 0; j < fields.getSize(); j++) { + for (int j = 0; j < fields.size(); j++) { primitiveFields.addField(aa.getName() + "__" + fields.getName(j), fields.getType(j)); } } diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java index 1588525a89e2a680a39f25d9fa98f1b4adda680c..f3d81ea268941d335829901438603831529e81ec 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java @@ -256,7 +256,7 @@ public class AvatarFromSysML { public void accept(AvatarAttribute aa, String dt) { AvatarDataType adt = dataTypeMap.get(dt); if (adt == null) { - errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, "datatype " + dt + "in datatype field " + + errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, "datatype " + dt + " in datatype field " + aa.getName() + " is undefined")); aa.setType(AvatarType.INTEGER); } @@ -322,7 +322,7 @@ public class AvatarFromSysML { aa.setDataType(adt); String aaName = a.getName() + "__"; AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt); - int dtsize = primitiveFields.getSize(); + int dtsize = primitiveFields.size(); for (int j = 0; j < dtsize; j++) { ax = new AvatarAttribute(aaName + primitiveFields.getName(j), primitiveFields.getType(j), theBlock, null); @@ -404,7 +404,7 @@ public class AvatarFromSysML { ret.setDataType(adt); am.addOriginalReturnParameter(ret); AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt); - int dtsize = primitiveFields.getSize(); + int dtsize = primitiveFields.size(); for (int j = 0; j < dtsize; j++) { ret = new AvatarAttribute("return__" + j, primitiveFields.getType(j), theBlock, null); @@ -947,7 +947,7 @@ public class AvatarFromSysML { aa.setAsConstant(false); aaName = aaName + "__"; AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt); - int dtsize = primitiveFields.getSize(); + int dtsize = primitiveFields.size(); for (int j = 0; j < dtsize; j++) { aa = new AvatarAttribute(aaName + primitiveFields.getName(j), primitiveFields.getType(j), b, null); @@ -1015,7 +1015,7 @@ public class AvatarFromSysML { private String extendName(String name, AvatarDataType adt) { if (adt != null) { AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt); - int size = primitiveFields.getSize() -1; + int size = primitiveFields.size() -1; StringBuffer res = new StringBuffer(); int i; for (i = 0; i < size; i++) diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index b9d8a8c72853843b94f53ccda0595d36bb06caee..ebca34de2bfce4152c6edc4a5e442eae1859b6ae 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -1115,7 +1115,7 @@ public class AvatarDesignPanelTranslator { AvatarDataType adt = new AvatarDataType(type.getDataTypeName(), type); for(TAttribute ta: type.getAttributeList()) { AvatarAttribute aa; - if (ta.getType() == TAttribute.INTEGER) + if (ta.getType() == TAttribute.INTEGER || ta.getType() == TAttribute.NATURAL) aa = new AvatarAttribute(ta.getName(), AvatarType.INTEGER, null, type); else if (ta.getType() == TAttribute.BOOLEAN) aa = new AvatarAttribute(ta.getName(), AvatarType.BOOLEAN, null, type); @@ -1123,7 +1123,7 @@ public class AvatarDesignPanelTranslator { aa = new AvatarAttribute(ta.getName(), AvatarType.UNDEFINED, null, type); attributeMap.put(aa, ta.getTypeOther().trim()); } - else { // ERROR, should not happen + else { // ERROR, should not happen ?? addCheckingError(new CheckingError(CheckingError.STRUCTURE_ERROR, "Unauthorized type for field " + ta.getId() + " of datatype " + type.getDataTypeName())); aa = new AvatarAttribute(ta.getName(), AvatarType.INTEGER, null, type);