diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java index c11ff22e895e55cf806a8e660fa15428a2aa3eaf..3918521b6ca6c24faa9f4b05086d3a9dc01f83a8 100644 --- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java +++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java @@ -71,7 +71,6 @@ public class AvatarFromSysML { out.println(_err.toString()); } public AvatarSpecification sysMLtoSpec(String _fileName) { - System.out.println("$$$$$$$$$$ BEGINNING $$$$$$$$$$$$"); AvatarFromSysMLParser parser; try { parser = new AvatarFromSysMLParser(new AvatarFromSysMLLexer(new FileReader(_fileName)), @@ -315,21 +314,25 @@ public class AvatarFromSysML { buildProfile(sm, am, theBlock); String returnType = sm.getReturnType(); if (returnType == null || returnType.length() == 0) continue; - if (returnType.equals("Integer")) - am.addOriginalReturnParameter(new AvatarAttribute("return", AvatarType.INTEGER, theBlock, null)); - else if (returnType.equals("Boolean")) - am.addOriginalReturnParameter(new AvatarAttribute("return", AvatarType.BOOLEAN, theBlock, null)); - else { + if (returnType.equals("Integer")) { + am.addReturnParameter(new AvatarAttribute("return__0", AvatarType.INTEGER, theBlock, null)); + am.addOriginalReturnParameter(new AvatarAttribute("return__", AvatarType.INTEGER, theBlock, null)); + } + else if (returnType.equals("Boolean")) { + am.addReturnParameter(new AvatarAttribute("return__0", AvatarType.BOOLEAN, theBlock, null)); + am.addOriginalReturnParameter(new AvatarAttribute("return__", AvatarType.BOOLEAN, theBlock, null)); + } + else { AvatarDataType adt = avSpec.getDataTypeByName(returnType); if (adt == null) addError(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, sm.getLeft(), "unknown type for method return parameter", null)); - AvatarAttribute ret = new AvatarAttribute("return", AvatarType.UNDEFINED, theBlock, null); + AvatarAttribute ret = new AvatarAttribute("return__", AvatarType.UNDEFINED, theBlock, null); ret.setDataType(adt); am.addOriginalReturnParameter(ret); int dtsize = adt.getFullSize(); for (int j = 0; j < dtsize; j++) { - ret = new AvatarAttribute("return__" + adt.getFieldString(j), + ret = new AvatarAttribute("return__" + j, adt.getFieldStringType(j), theBlock, null); am.addReturnParameter(ret); } @@ -719,10 +722,16 @@ public class AvatarFromSysML { aa = new AvatarAttribute(ss.getFieldName(i), AvatarType.INTEGER, b, null); am.addOriginalParameter(aa); aa.setAsConstant(false); - } else if (type.equals("Boolean")) { + aa = new AvatarAttribute(ss.getFieldName(i), AvatarType.INTEGER, b, null); + am.addParameter(aa); + aa.setAsConstant(false); + } else if (type.equals("Boolean")) { aa = new AvatarAttribute(ss.getFieldName(i), AvatarType.BOOLEAN, b, null); am.addOriginalParameter(aa); aa.setAsConstant(false); + aa = new AvatarAttribute(ss.getFieldName(i), AvatarType.BOOLEAN, b, null); + am.addParameter(aa); + aa.setAsConstant(false); } else { AvatarDataType adt = avSpec.getDataTypeByName(type); if (adt == null) { diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index 73902261d7d958f4614b57162f7b8397a95ddb8c..6edfce0bc60acb3975b4b97143ae5e9c76b80d20 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -1388,6 +1388,8 @@ public class AvatarDesignPanelTranslator { if ((rt.compareTo("int") == 0) || (rt.compareTo("bool") == 0)) { aa = new AvatarAttribute("return__0", AvatarType.getType(rt), _ab, _block); _atam.addReturnParameter(aa); + aa = new AvatarAttribute("return__", AvatarType.getType(rt), _ab, _block); + _atam.addOriginalReturnParameter(aa); } else { List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt); if (types == null) { diff --git a/src/main/java/ui/AvatarMethod.java b/src/main/java/ui/AvatarMethod.java index 8fce54de90585a7e43f437052ce22ccb41dedf79..dfa8eb862dbffbbe401d4d53ca1edc133da85878 100644 --- a/src/main/java/ui/AvatarMethod.java +++ b/src/main/java/ui/AvatarMethod.java @@ -152,7 +152,7 @@ public class AvatarMethod { // So, there is a return type! rt = tmp.trim(); method = method.substring(index2 + 1, method.length()).trim(); - if (!isAValidId(rt, false, false, false, checkTypes, extraTypes)) { + if (!isAValidId(rt, false, false, false, false, extraTypes)) { TraceManager.addDev("Unvalid return type: " + rt); return null; }