From fba5c79ee128b748a1cfd845d207989db6438f2d Mon Sep 17 00:00:00 2001 From: lfrenot <leon.frenot@ens-lyon.fr> Date: Thu, 30 Jun 2022 17:24:36 +0200 Subject: [PATCH] refactoring constructeurs --- .../mutation/ActionMutation.java | 44 +++++- .../mutation/ActionOnSignalMutation.java | 61 ++++---- .../mutation/AddActionMutation.java | 19 ++- .../mutation/AddActionOnSignalMutation.java | 13 +- .../mutation/AddAssociationMutation.java | 7 +- .../mutation/AddAttributeMutation.java | 10 +- .../mutation/AddBlockMutation.java | 4 +- .../mutation/AddExpireTimerMutation.java | 9 +- .../mutation/AddMethodMutation.java | 13 +- .../mutation/AddMutation.java | 2 +- .../mutation/AddRandomMutation.java | 11 +- .../mutation/AddRelationMutation.java | 2 +- .../mutation/AddResetTimerMutation.java | 9 +- .../mutation/AddSetTimerMutation.java | 10 +- .../mutation/AddSignalMutation.java | 9 +- .../mutation/AddStateMutation.java | 7 +- .../mutation/AddTransitionMutation.java | 9 +- .../mutation/AssociationMutation.java | 22 ++- .../mutation/AttributeMutation.java | 37 +++-- .../mutation/AvatarMutation.java | 4 +- ...utation.java => BlockElementMutation.java} | 19 ++- .../mutation/ExpireTimerMutation.java | 12 ++ .../mutation/MdActionMutation.java | 11 +- .../mutation/MdActionOnSignalMutation.java | 39 ++--- .../mutation/MdAttributeMutation.java | 5 +- .../mutation/MdExpireTimerMutation.java | 10 +- .../mutation/MdMethodMutation.java | 16 ++- .../mutation/MdRandomMutation.java | 42 ++++-- .../mutation/MdRelationMutation.java | 17 +-- .../mutation/MdResetTimerMutation.java | 10 +- .../mutation/MdSetTimerMutation.java | 40 +++--- .../mutation/MdSignalMutation.java | 17 ++- .../mutation/MdTransitionMutation.java | 34 ++--- .../mutation/MethodMutation.java | 40 ++++-- .../mutation/NoneActionOnSignalMutation.java | 72 ++++++++++ .../mutation/NoneRandomMutation.java | 72 ++++++++++ .../mutation/NoneRelationMutation.java | 64 +++++++++ .../mutation/NoneTransitionMutation.java | 65 +++++++++ .../mutation/RandomMutation.java | 70 ++++----- .../mutation/RelationMutation.java | 85 +++++------ .../mutation/ResetTimerMutation.java | 12 ++ .../mutation/RmActionMutation.java | 22 +-- .../mutation/RmActionOnSignalMutation.java | 18 ++- .../mutation/RmAssociationMutation.java | 7 +- .../mutation/RmAttributeMutation.java | 7 +- .../mutation/RmBlockMutation.java | 9 +- .../mutation/RmExpireTimerMutation.java | 9 +- .../mutation/RmMethodMutation.java | 6 +- .../mutation/RmRandomMutation.java | 16 ++- .../mutation/RmRelationMutation.java | 6 +- .../mutation/RmResetTimerMutation.java | 9 +- .../mutation/RmSetTimerMutation.java | 9 +- .../mutation/RmSignalMutation.java | 6 +- .../mutation/RmStateMutation.java | 7 +- .../mutation/RmTransitionMutation.java | 9 +- .../mutation/SetTimerMutation.java | 23 ++- .../mutation/SignalMutation.java | 19 ++- .../mutation/StateMachineElementMutation.java | 40 +----- .../mutation/StateMutation.java | 18 ++- .../mutation/SwapActionMutation.java | 26 ++-- .../mutation/TimerOperatorMutation.java | 43 +++--- .../mutation/TransitionMutation.java | 134 ++++++++++-------- .../mutation/UnnamedElementMutation.java | 2 - .../UnnamedStateMachineElementMutation.java | 121 ++++++++++++++++ 64 files changed, 1105 insertions(+), 515 deletions(-) rename src/main/java/avatartranslator/mutation/{BlockStructMutation.java => BlockElementMutation.java} (81%) create mode 100644 src/main/java/avatartranslator/mutation/NoneActionOnSignalMutation.java create mode 100644 src/main/java/avatartranslator/mutation/NoneRandomMutation.java create mode 100644 src/main/java/avatartranslator/mutation/NoneRelationMutation.java create mode 100644 src/main/java/avatartranslator/mutation/NoneTransitionMutation.java create mode 100644 src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java diff --git a/src/main/java/avatartranslator/mutation/ActionMutation.java b/src/main/java/avatartranslator/mutation/ActionMutation.java index 26b339ea4f..fc0c706188 100644 --- a/src/main/java/avatartranslator/mutation/ActionMutation.java +++ b/src/main/java/avatartranslator/mutation/ActionMutation.java @@ -51,41 +51,71 @@ import avatartranslator.*; public abstract class ActionMutation extends TransitionMutation { + public ActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString) { + super(_blockName, _fromString, _fromType, _toString, _toType); + setActionString(_actionString); + } + + public ActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, int _index) { + super(_blockName, _fromString, _fromType, _toString, _toType); + setIndex(_index); + } + + public ActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString, int _index) { + this(_blockName, _fromString, _fromType, _toString, _toType, _actionString); + setIndex(_index); + } + + public ActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString) { + super(_blockName, _transitionString, _transitionType); + setActionString(_actionString); + } + + public ActionMutation(String _blockName, String _transitionString, int _transitionType, int _index) { + super(_blockName, _transitionString, _transitionType); + setIndex(_index); + } + + public ActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString, int _index) { + this(_blockName, _transitionString, _transitionType, _actionString); + setIndex(_index); + } + private String actionString; private int index = -1; - public String getActionString() { + protected String getActionString() { return actionString; } - public int getIndex() { + protected int getIndex() { return index; } - public int getIndex(AvatarSpecification _avspec) { + protected int getIndex(AvatarSpecification _avspec) { if (index == -1) index = getIndexFromString(_avspec); return index; } - public int getIndexFromString(AvatarSpecification _avspec) { + protected int getIndexFromString(AvatarSpecification _avspec) { AvatarTransition trans = super.getElement(_avspec); AvatarBlock block = getBlock(_avspec); int len = trans.getNbOfAction(); for (int i = 0; i < len; i++) { - if(trans.getAction(i).toString().equals(AvatarTerm.createFromString(block, getActionString()).toString())) { + if (trans.getAction(i).toString().equals(AvatarTerm.createFromString(block, getActionString()).toString())) { return i; } } return -1; } - public void setActionString(String _actionString) { + private void setActionString(String _actionString) { actionString = _actionString; } - public void setIndex(int _index) { + private void setIndex(int _index) { index = _index; } diff --git a/src/main/java/avatartranslator/mutation/ActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/ActionOnSignalMutation.java index 8a1ff21409..3683a1ad78 100644 --- a/src/main/java/avatartranslator/mutation/ActionOnSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/ActionOnSignalMutation.java @@ -52,10 +52,23 @@ import java.util.LinkedList; * @version 1.0 27/06/2022 */ -public abstract class ActionOnSignalMutation extends StateMachineElementMutation { +public abstract class ActionOnSignalMutation extends UnnamedStateMachineElementMutation { - private String name = ""; - private int nameType = UNDEFINED_TYPE; + protected ActionOnSignalMutation(String _blockName, String _signalName) { + super(_blockName); + setSignalName(_signalName); + initValues(); + } + + protected ActionOnSignalMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + initValues(); + } + + protected ActionOnSignalMutation(String _blockName, String _name, int _nameType, String _signalName) { + this(_blockName, _name, _nameType); + setSignalName(_signalName); + } private String signalName; @@ -65,45 +78,23 @@ public abstract class ActionOnSignalMutation extends StateMachineElementMutation private boolean checkLatency; private boolean checkLatencySet = false; - public String getName() { - return name; - } - - public boolean isNameSet() { - return nameType != UNDEFINED_TYPE; - } - - public int getNameType() { - return nameType; - } - - public void setName(String _name) { - name = _name; - nameType = NAME_TYPE; - } - - public void setUUID(String _uuid) { - name = _uuid; - nameType = UUID_TYPE; - } - - public String getSignalName() { + protected String getSignalName() { return signalName; } - public void setSignalName(String _signalName) { + private void setSignalName(String _signalName) { signalName = _signalName; } - public List<String> getValues() { + protected List<String> getValues() { return values; } - public String getValue(int i) { + protected String getValue(int i) { return values.get(i); } - public boolean areValuesSet() { + protected boolean areValuesSet() { return valuesSet; } @@ -117,15 +108,15 @@ public abstract class ActionOnSignalMutation extends StateMachineElementMutation valuesSet = true; } - public void initValues() { + private void initValues() { values = new LinkedList<>(); } - public boolean getCheckLatency() { + protected boolean getCheckLatency() { return checkLatency; } - public boolean isCheckLatencySet() { + protected boolean isCheckLatencySet() { return checkLatencySet; } @@ -134,6 +125,7 @@ public abstract class ActionOnSignalMutation extends StateMachineElementMutation checkLatencySet = true; } + @Override public AvatarActionOnSignal getElement(AvatarSpecification _avspec) { if (!isNameSet()) { //TraceManager.addDev("name not set"); @@ -161,9 +153,8 @@ public abstract class ActionOnSignalMutation extends StateMachineElementMutation } return null; } - AvatarStateMachineElement element = getElement(_avspec, getNameType(), getName()); + AvatarStateMachineElement element = super.getElement(_avspec); if (element != null && element instanceof AvatarActionOnSignal) return (AvatarActionOnSignal)element; return null; } - } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/AddActionMutation.java b/src/main/java/avatartranslator/mutation/AddActionMutation.java index 3430669a65..de6f59a842 100644 --- a/src/main/java/avatartranslator/mutation/AddActionMutation.java +++ b/src/main/java/avatartranslator/mutation/AddActionMutation.java @@ -53,15 +53,20 @@ import avatartranslator.*; public class AddActionMutation extends ActionMutation implements AddMutation { - public AddActionMutation(String _blockName, String _actionString) { - setBlockName(_blockName); - setActionString(_actionString); - initActions(); + public AddActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString) { + super(_blockName, _fromString, _fromType, _toString, _toType, _actionString); } - public AddActionMutation(String _blockName, String _actionString, int _index) { - this(_blockName, _actionString); - setIndex(_index); + public AddActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString, int _index) { + super(_blockName, _fromString, _fromType, _toString, _toType, _actionString, _index); + } + + public AddActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString) { + super(_blockName, _transitionString, _transitionType, _actionString); + } + + public AddActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString, int _index) { + super(_blockName, _transitionString, _transitionType, _actionString, _index); } public AvatarElement createElement(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java index 2638997412..bb1e909a83 100644 --- a/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/AddActionOnSignalMutation.java @@ -51,10 +51,12 @@ public class AddActionOnSignalMutation extends ActionOnSignalMutation implements private boolean isGraphical = false; - public AddActionOnSignalMutation(String _signalName, String _block) { - setSignalName(_signalName); - setBlockName(_block); - initValues(); + public AddActionOnSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); + } + + public AddActionOnSignalMutation(String _blockName, String _name, String _signalName) { + super(_blockName, _name, NAME_TYPE, _signalName); } //todo : graphique @@ -70,7 +72,8 @@ public class AddActionOnSignalMutation extends ActionOnSignalMutation implements return aaos; } - + + @Override public void apply(AvatarSpecification _avspec) { AvatarActionOnSignal aaos = createElement(_avspec); AvatarStateMachine asm = getAvatarStateMachine(_avspec); diff --git a/src/main/java/avatartranslator/mutation/AddAssociationMutation.java b/src/main/java/avatartranslator/mutation/AddAssociationMutation.java index 5e6de25b87..8b062b9432 100644 --- a/src/main/java/avatartranslator/mutation/AddAssociationMutation.java +++ b/src/main/java/avatartranslator/mutation/AddAssociationMutation.java @@ -50,8 +50,11 @@ import avatartranslator.*; public class AddAssociationMutation extends AssociationMutation implements AddMutation{ public AddAssociationMutation(String _block1, String _block2, String _signal1, String _signal2) { - setBlocks(_block1, _block2); - setSignals(_signal1, _signal2); + super(_block1, _block2, _signal1, _signal2); + } + + public AddAssociationMutation(String _relationString, int _relationType, String _signal1, String _signal2) { + super(_relationString, _relationType, _signal1, _signal2); } public AvatarElement createElement(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/AddAttributeMutation.java b/src/main/java/avatartranslator/mutation/AddAttributeMutation.java index 588edd7ef9..c7d8ff5929 100644 --- a/src/main/java/avatartranslator/mutation/AddAttributeMutation.java +++ b/src/main/java/avatartranslator/mutation/AddAttributeMutation.java @@ -50,10 +50,12 @@ import avatartranslator.*; */ public class AddAttributeMutation extends AttributeMutation implements AddMutation { - public AddAttributeMutation(String _name, String _type, String _blockName) { - setType(_type); - setName(_name); - setBlockName(_blockName); + public AddAttributeMutation(String _blockName, String _attributeName, String _attributeType) { + super(_blockName, _attributeName, _attributeType); + } + + public AddAttributeMutation(String _blockName, String _attributeName, String _attributeType, String _initialValue) { + super(_blockName, _attributeName, _attributeType, _initialValue); } public AvatarAttribute createElement(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/AddBlockMutation.java b/src/main/java/avatartranslator/mutation/AddBlockMutation.java index 282c42218b..b1886502d0 100644 --- a/src/main/java/avatartranslator/mutation/AddBlockMutation.java +++ b/src/main/java/avatartranslator/mutation/AddBlockMutation.java @@ -47,12 +47,12 @@ import avatartranslator.*; * @version 1.0 23/06/2022 */ -public class AddBlockMutation extends BlockStructMutation implements AddMutation { +public class AddBlockMutation extends BlockElementMutation implements AddMutation { private boolean isGraphical = false; public AddBlockMutation(String _blockName) { - setBlockName(_blockName); + super(_blockName); } //todo : graphic diff --git a/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java b/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java index c24a04694f..8038aac210 100644 --- a/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/AddExpireTimerMutation.java @@ -52,9 +52,12 @@ public class AddExpireTimerMutation extends ExpireTimerMutation implements AddMu private boolean isGraphical = false; - public AddExpireTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public AddExpireTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + public AddExpireTimerMutation(String _blockName, String _name, String _timerName) { + super(_blockName, _name, NAME_TYPE, _timerName); } //todo : graphique diff --git a/src/main/java/avatartranslator/mutation/AddMethodMutation.java b/src/main/java/avatartranslator/mutation/AddMethodMutation.java index 2d63f2b8cd..1052b6f006 100644 --- a/src/main/java/avatartranslator/mutation/AddMethodMutation.java +++ b/src/main/java/avatartranslator/mutation/AddMethodMutation.java @@ -49,20 +49,17 @@ import avatartranslator.*; */ public class AddMethodMutation extends MethodMutation implements AddMutation { - public AddMethodMutation(String _name, String _blockName, boolean _imp) { - setName(_name); - setBlockName(_blockName); - initParameters(); - setImplementationProvided(_imp); + public AddMethodMutation(String _blockName, String _methodName, boolean _imp) { + super(_blockName, _methodName, _imp); } - public AddMethodMutation(String _name, String _blockName) { - this(_name, _blockName, false); + public AddMethodMutation(String _blockName, String _methodName) { + super(_blockName, _methodName); } public AvatarMethod createElement(AvatarSpecification _avspec) { AvatarBlock block = getBlock(_avspec); - AvatarMethod am = new AvatarMethod(getName(), null); + AvatarMethod am = new AvatarMethod(getMethodName(), null); for (String s : getReturnParameters()) { AvatarAttribute aa = new AvatarAttribute("", AvatarType.getType(s), block, null); am.addReturnParameter(aa); diff --git a/src/main/java/avatartranslator/mutation/AddMutation.java b/src/main/java/avatartranslator/mutation/AddMutation.java index caf3b96278..532f0e6135 100644 --- a/src/main/java/avatartranslator/mutation/AddMutation.java +++ b/src/main/java/avatartranslator/mutation/AddMutation.java @@ -49,6 +49,6 @@ import avatartranslator.*; */ public interface AddMutation { - AvatarElement createElement(AvatarSpecification _avspec); + public AvatarElement createElement(AvatarSpecification _avspec); } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/AddRandomMutation.java b/src/main/java/avatartranslator/mutation/AddRandomMutation.java index 48b55f7a3d..c632ff4043 100644 --- a/src/main/java/avatartranslator/mutation/AddRandomMutation.java +++ b/src/main/java/avatartranslator/mutation/AddRandomMutation.java @@ -52,15 +52,18 @@ public class AddRandomMutation extends RandomMutation implements AddMutation { boolean isGraphical = false; - public AddRandomMutation(String _variable, String _blockName) { - setVariable(_variable); - setBlockName(_blockName); + public AddRandomMutation(String _blockName, String _attributeName) { + super(_blockName, _attributeName); + } + + public AddRandomMutation(String _blockName, String _name, String _attributeName) { + super(_blockName, _name, NAME_TYPE, _attributeName); } //todo : add Graphical referenceObject public AvatarRandom createElement(AvatarSpecification _avspec) { AvatarRandom rand = new AvatarRandom(getName(), null); - rand.setVariable(getVariable()); + rand.setVariable(getAttributeName()); if(areValuesSet()) rand.setValues(getMinValue(), getMaxValue()); if(isFunctionSet()) { rand.setFunctionId(getFunctionId()); diff --git a/src/main/java/avatartranslator/mutation/AddRelationMutation.java b/src/main/java/avatartranslator/mutation/AddRelationMutation.java index a71ec70d93..555168a60d 100644 --- a/src/main/java/avatartranslator/mutation/AddRelationMutation.java +++ b/src/main/java/avatartranslator/mutation/AddRelationMutation.java @@ -52,7 +52,7 @@ public class AddRelationMutation extends RelationMutation implements AddMutation private boolean isGraphic = false; public AddRelationMutation(String _block1, String _block2) { - setBlocks(_block1, _block2); + super(_block1, _block2); } //todo : graphic diff --git a/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java b/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java index 5e40f51914..7ccbb71d31 100644 --- a/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/AddResetTimerMutation.java @@ -51,9 +51,12 @@ public class AddResetTimerMutation extends ResetTimerMutation implements AddMuta private boolean isGraphical = false; - public AddResetTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public AddResetTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + public AddResetTimerMutation(String _blockName, String _name, String _timerName) { + super(_blockName, _name, NAME_TYPE, _timerName); } //todo : graphique diff --git a/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java b/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java index d9417b4964..870b47d18c 100644 --- a/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/AddSetTimerMutation.java @@ -51,10 +51,12 @@ public class AddSetTimerMutation extends SetTimerMutation implements AddMutation private boolean isGraphical = false; - public AddSetTimerMutation(String _timerName, String _timerValue, String _block) { - setTimerName(_timerName); - setTimerValue(_timerValue); - setBlockName(_block); + public AddSetTimerMutation(String _blockName, String _timerName, String _timerValue) { + super(_blockName, _timerName, _timerValue); + } + + public AddSetTimerMutation(String _blockName, String _name, String _timerName, String _timerValue) { + super(_blockName, _name, NAME_TYPE, _timerName, _timerValue); } //todo : graphique diff --git a/src/main/java/avatartranslator/mutation/AddSignalMutation.java b/src/main/java/avatartranslator/mutation/AddSignalMutation.java index 24d0831587..38e3e3fba6 100644 --- a/src/main/java/avatartranslator/mutation/AddSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/AddSignalMutation.java @@ -49,16 +49,13 @@ import avatartranslator.*; */ public class AddSignalMutation extends SignalMutation implements AddMutation { - public AddSignalMutation(String _name, String _blockName, int _inout) { - setName(_name); - setBlockName(_blockName); - setInOut(_inout); - initParameters(); + public AddSignalMutation(String _blockName, String _signalName, int _inout) { + super(_blockName, _signalName, _inout); } public AvatarSignal createElement(AvatarSpecification _avspec) { AvatarBlock block = getBlock(_avspec); - AvatarSignal as = new AvatarSignal(getName(), getInOut(), null); + AvatarSignal as = new AvatarSignal(getSignalName(), getInOut(), null); for (String[] s : getParameters()) { AvatarAttribute aa = new AvatarAttribute(s[1], AvatarType.getType(s[0]), block, null); as.addParameter(aa); diff --git a/src/main/java/avatartranslator/mutation/AddStateMutation.java b/src/main/java/avatartranslator/mutation/AddStateMutation.java index 96cdd2e6fc..99ce7e90f4 100644 --- a/src/main/java/avatartranslator/mutation/AddStateMutation.java +++ b/src/main/java/avatartranslator/mutation/AddStateMutation.java @@ -50,16 +50,15 @@ import avatartranslator.*; public class AddStateMutation extends StateMutation implements AddMutation { - public AddStateMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); + public AddStateMutation(String _blockName, String _stateName) { + super(_blockName, _stateName); } //todo : add Graphical referenceObject private boolean isGraphical = false; public AvatarState createElement() { - AvatarState state = new AvatarState(getName(), null); + AvatarState state = new AvatarState(getStateName(), null); return state; } diff --git a/src/main/java/avatartranslator/mutation/AddTransitionMutation.java b/src/main/java/avatartranslator/mutation/AddTransitionMutation.java index d7496d159a..21171cae39 100644 --- a/src/main/java/avatartranslator/mutation/AddTransitionMutation.java +++ b/src/main/java/avatartranslator/mutation/AddTransitionMutation.java @@ -54,9 +54,12 @@ public class AddTransitionMutation extends TransitionMutation implements AddMuta boolean isGraphical = false; - public AddTransitionMutation(String _blockName) { - setBlockName(_blockName); - initActions(); + public AddTransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType) { + super(_blockName, _fromString, _fromType, _toString, _toType); + } + + public AddTransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _transitionName) { + super(_blockName, _fromString, _fromType, _toString, _toType, _transitionName, NAME_TYPE); } //todo : add Graphical referenceObject diff --git a/src/main/java/avatartranslator/mutation/AssociationMutation.java b/src/main/java/avatartranslator/mutation/AssociationMutation.java index 8a4eb8b1a1..1d2d306382 100644 --- a/src/main/java/avatartranslator/mutation/AssociationMutation.java +++ b/src/main/java/avatartranslator/mutation/AssociationMutation.java @@ -49,10 +49,20 @@ import avatartranslator.*; */ public abstract class AssociationMutation extends RelationMutation { + protected AssociationMutation(String _block1, String _block2, String _signal1, String _signal2) { + super(_block1, _block2); + setSignals(_signal1, _signal2); + } + + public AssociationMutation(String _relationString, int _relationType, String _signal1, String _signal2) { + super(_relationString, _relationType); + setSignals(_signal1, _signal2); + } + private String signal1; private String signal2; - public AvatarSignal getSignal(AvatarSpecification _avspec, String _signal) { + protected AvatarSignal getSignal(AvatarSpecification _avspec, String _signal) { AvatarBlock block = getBlock1(_avspec); AvatarSignal signal = block.getSignalByName(_signal); if (signal == null) { @@ -62,23 +72,23 @@ public abstract class AssociationMutation extends RelationMutation { return signal; } - public String getSignal1() { + protected String getSignal1() { return signal1; } - public AvatarSignal getSignal1(AvatarSpecification _avspec) { + protected AvatarSignal getSignal1(AvatarSpecification _avspec) { return getSignal(_avspec, getSignal1()); } - public String getSignal2() { + protected String getSignal2() { return signal2; } - public AvatarSignal getSignal2(AvatarSpecification _avspec) { + protected AvatarSignal getSignal2(AvatarSpecification _avspec) { return getSignal(_avspec, getSignal2()); } - public void setSignals(String _signal1, String _signal2) { + private void setSignals(String _signal1, String _signal2) { signal1 = _signal1; signal2 = _signal2; } diff --git a/src/main/java/avatartranslator/mutation/AttributeMutation.java b/src/main/java/avatartranslator/mutation/AttributeMutation.java index 90cf1d9a95..d4cbfd153b 100644 --- a/src/main/java/avatartranslator/mutation/AttributeMutation.java +++ b/src/main/java/avatartranslator/mutation/AttributeMutation.java @@ -47,33 +47,50 @@ import avatartranslator.*; * @author Léon FRENOT * @version 1.0 23/06/2022 */ -public abstract class AttributeMutation extends BlockStructMutation { +public abstract class AttributeMutation extends BlockElementMutation { - private String type; + public AttributeMutation(String _blockName, String _attributeName) { + super(_blockName); + setAttributeName(_attributeName); - private String name; + } + + public AttributeMutation(String _blockName, String _attributeName, String _attributeType) { + super(_blockName); + setAttributeName(_attributeName); + setAttributeType(_attributeType); + } + + public AttributeMutation(String _blockName, String _attributeName, String _attributeType, String _initialValue) { + this(_blockName, _attributeName, _attributeType); + setInitialValue(_initialValue); + } + + private String attributeType; + + private String attributeName; private String initialValue; private Boolean hasInitialValue = false; - public void setName(String _name) { - name = _name; + protected void setAttributeName(String _name) { + attributeName = _name; } public String getName() { - return name; + return attributeName; } - public void setType(String _type) { - type = _type; + protected void setAttributeType(String _type) { + attributeType = _type; } public AvatarType getType() { - return AvatarType.getType(type); + return AvatarType.getType(attributeType); } - public void setInitialValue(String _initialValue) { + protected void setInitialValue(String _initialValue) { hasInitialValue = true; initialValue = _initialValue; } diff --git a/src/main/java/avatartranslator/mutation/AvatarMutation.java b/src/main/java/avatartranslator/mutation/AvatarMutation.java index 6acddb465f..55a3729b6c 100644 --- a/src/main/java/avatartranslator/mutation/AvatarMutation.java +++ b/src/main/java/avatartranslator/mutation/AvatarMutation.java @@ -49,7 +49,9 @@ import avatartranslator.*; */ public abstract class AvatarMutation { - public AvatarBlock getBlock(AvatarSpecification _avspec, String _block) { + protected AvatarMutation() {} + + protected AvatarBlock getBlock(AvatarSpecification _avspec, String _block) { return _avspec.getBlockWithName(_block); } diff --git a/src/main/java/avatartranslator/mutation/BlockStructMutation.java b/src/main/java/avatartranslator/mutation/BlockElementMutation.java similarity index 81% rename from src/main/java/avatartranslator/mutation/BlockStructMutation.java rename to src/main/java/avatartranslator/mutation/BlockElementMutation.java index 524b415ef2..b6a92c8b4f 100644 --- a/src/main/java/avatartranslator/mutation/BlockStructMutation.java +++ b/src/main/java/avatartranslator/mutation/BlockElementMutation.java @@ -46,33 +46,38 @@ import avatartranslator.*; * @author Léon FRENOT * @version 1.0 23/06/2022 */ -public abstract class BlockStructMutation extends AvatarMutation { +public abstract class BlockElementMutation extends AvatarMutation { private String blockName; - public void setBlockName(String _blockName) { + protected BlockElementMutation(String _blockName) { + super(); + setBlockName(_blockName); + } + + private void setBlockName(String _blockName) { blockName = _blockName; } - public AvatarBlock getBlock(AvatarSpecification _avspec) { + protected AvatarBlock getBlock(AvatarSpecification _avspec) { return _avspec.getBlockWithName(blockName); } - public String getBlockName() { + protected String getBlockName() { return blockName; } - public AvatarAttribute getAttribute(AvatarSpecification _avspec, String _name) { + protected AvatarAttribute getAttribute(AvatarSpecification _avspec, String _name) { AvatarBlock block = getBlock(_avspec); return block.getAvatarAttributeWithName(_name); } - public AvatarMethod getMethod(AvatarSpecification _avspec, String _name) { + protected AvatarMethod getMethod(AvatarSpecification _avspec, String _name) { AvatarBlock block = getBlock(_avspec); return block.getAvatarMethodWithName(_name); } - public AvatarSignal getSignal(AvatarSpecification _avspec, String _name) { + protected AvatarSignal getSignal(AvatarSpecification _avspec, String _name) { AvatarBlock block = getBlock(_avspec); return block.getAvatarSignalWithName(_name); } diff --git a/src/main/java/avatartranslator/mutation/ExpireTimerMutation.java b/src/main/java/avatartranslator/mutation/ExpireTimerMutation.java index 23af59db26..c7e766c533 100644 --- a/src/main/java/avatartranslator/mutation/ExpireTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/ExpireTimerMutation.java @@ -51,6 +51,18 @@ import java.util.List; */ public abstract class ExpireTimerMutation extends TimerOperatorMutation { + protected ExpireTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + protected ExpireTimerMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected ExpireTimerMutation(String _blockName, String _name, int _nameType, String _timerName) { + super(_blockName, _name, _nameType, _timerName); + } + @Override public AvatarExpireTimer getElement(AvatarSpecification _avspec) { if (isNameSet()) diff --git a/src/main/java/avatartranslator/mutation/MdActionMutation.java b/src/main/java/avatartranslator/mutation/MdActionMutation.java index 71e15d80a7..766024addb 100644 --- a/src/main/java/avatartranslator/mutation/MdActionMutation.java +++ b/src/main/java/avatartranslator/mutation/MdActionMutation.java @@ -53,11 +53,12 @@ import avatartranslator.*; public class MdActionMutation extends ActionMutation implements MdMutation { - public MdActionMutation(String _blockName, String _actionString, int _index) { - setBlockName(_blockName); - setActionString(_actionString); - setIndex(_index); - initActions(); + public MdActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString, int _index) { + super(_blockName, _fromString, _fromType, _toString, _toType, _actionString, _index); + } + + public MdActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString, int _index) { + super(_blockName, _transitionString, _transitionType, _actionString, _index); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/MdActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/MdActionOnSignalMutation.java index 2243ed5313..2b5d711035 100644 --- a/src/main/java/avatartranslator/mutation/MdActionOnSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/MdActionOnSignalMutation.java @@ -39,9 +39,10 @@ package avatartranslator.mutation; import avatartranslator.*; +import myutil.TraceManager; /** - * Class MdRandomMutation + * Class MdActionOnSignalMutation * Creation: 28/06/2022 * * @author Léon FRENOT @@ -54,26 +55,26 @@ public class MdActionOnSignalMutation extends ActionOnSignalMutation implements private boolean signalNameChanged = false; - public MdActionOnSignalMutation(String _signalName, String _block) { - setSignalName(_signalName); - setBlockName(_block); - initValues(); - current = new RmActionOnSignalMutation(_signalName, _block); + public MdActionOnSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); + current = new NoneActionOnSignalMutation(_blockName, _signalName); } - @Override - public void setName(String _name) { - current.setName(_name); - super.setName(_name); - } - - public void setCurrentSignalName(String _signalName) { - current.setSignalName(_signalName); + public MdActionOnSignalMutation(String _blockName, String _signalName, String _newSignalName) { + super(_blockName, _newSignalName); + current = new NoneActionOnSignalMutation(_blockName, _signalName); signalNameChanged = true; } + + public MdActionOnSignalMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + current = new NoneActionOnSignalMutation(_blockName, _name, _nameType); + } - public void setCurrentUUID(String _uuid) { - current.setUUID(_uuid); + public MdActionOnSignalMutation(String _blockName, String _name, int _nameType, String _newSignalName) { + super(_blockName, _newSignalName); + current = new NoneActionOnSignalMutation(_blockName, _name, _nameType); + signalNameChanged = true; } public void noCurrentValues() { @@ -88,9 +89,15 @@ public class MdActionOnSignalMutation extends ActionOnSignalMutation implements current.setCheckLatency(b); } + @Override public void apply(AvatarSpecification _avspec) { AvatarActionOnSignal aaos = current.getElement(_avspec); + if(aaos == null) { + TraceManager.addDev("unknown ActionOnSignal"); + return; + } + if(signalNameChanged) { AvatarSignal signal = getSignal(_avspec, this.getSignalName()); aaos.setSignal(signal); diff --git a/src/main/java/avatartranslator/mutation/MdAttributeMutation.java b/src/main/java/avatartranslator/mutation/MdAttributeMutation.java index a4ec6996ba..24dc1e472a 100644 --- a/src/main/java/avatartranslator/mutation/MdAttributeMutation.java +++ b/src/main/java/avatartranslator/mutation/MdAttributeMutation.java @@ -51,10 +51,9 @@ import myutil.TraceManager; */ public class MdAttributeMutation extends AttributeMutation implements MdMutation { - public MdAttributeMutation(String _name, String _initialValue, String _blockName) { - setName(_name); + public MdAttributeMutation(String _blockName, String _attributeName, String _initialValue){ + super(_blockName, _attributeName); setInitialValue(_initialValue); - setBlockName(_blockName); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/MdExpireTimerMutation.java b/src/main/java/avatartranslator/mutation/MdExpireTimerMutation.java index 461be95970..5cafb76c48 100644 --- a/src/main/java/avatartranslator/mutation/MdExpireTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/MdExpireTimerMutation.java @@ -51,9 +51,13 @@ public class MdExpireTimerMutation extends ExpireTimerMutation implements MdMuta private String newTimerName; - public MdExpireTimerMutation(String _timerName, String _newTimerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public MdExpireTimerMutation(String _blockName, String _currentTimerName, String _newTimerName) { + super(_blockName, _currentTimerName); + newTimerName = _newTimerName; + } + + public MdExpireTimerMutation(String _blockName, String _name, int _nameType, String _timerName, String _newTimerName) { + super(_blockName, _name, _nameType, _timerName); newTimerName = _newTimerName; } diff --git a/src/main/java/avatartranslator/mutation/MdMethodMutation.java b/src/main/java/avatartranslator/mutation/MdMethodMutation.java index defa4edd18..e07d3f4a3a 100644 --- a/src/main/java/avatartranslator/mutation/MdMethodMutation.java +++ b/src/main/java/avatartranslator/mutation/MdMethodMutation.java @@ -38,6 +38,8 @@ package avatartranslator.mutation; +import java.util.List; + import avatartranslator.*; import myutil.TraceManager; @@ -55,10 +57,8 @@ public class MdMethodMutation extends MethodMutation implements MdMutation { private boolean returnParametersChanged = false; private boolean parametersChanged = false; - public MdMethodMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); - initParameters(); + public MdMethodMutation(String _blockName, String _methodName) { + super(_blockName, _methodName); } public MdMethodMutation(String _name, String _blockName, boolean _imp) { @@ -79,7 +79,7 @@ public class MdMethodMutation extends MethodMutation implements MdMutation { } @Override - public void setImplementationProvided(boolean _imp) { + protected void setImplementationProvided(boolean _imp) { implementationChanged = true; super.setImplementationProvided(_imp); } @@ -93,6 +93,12 @@ public class MdMethodMutation extends MethodMutation implements MdMutation { return; } + List<AvatarMethod> meth = block.getMethods(); + if (!meth.contains(am)) { + TraceManager.addDev("Method is from a super-bloc"); + return; + } + if (implementationChanged) { am.setImplementationProvided(isImplementationProvided()); } diff --git a/src/main/java/avatartranslator/mutation/MdRandomMutation.java b/src/main/java/avatartranslator/mutation/MdRandomMutation.java index 20e8980640..2dc07290b6 100644 --- a/src/main/java/avatartranslator/mutation/MdRandomMutation.java +++ b/src/main/java/avatartranslator/mutation/MdRandomMutation.java @@ -53,17 +53,28 @@ public class MdRandomMutation extends RandomMutation implements MdMutation { private RandomMutation current; - private boolean variableNameChange = false; + private boolean attributeNameChange = false; - public MdRandomMutation(String _variable, String _blockName) { - setBlockName(_blockName); - setVariable(_variable); - current = new RmRandomMutation(_variable, _blockName); + public MdRandomMutation(String _blockName, String _attributeName) { + super(_blockName, _attributeName); + current = new MdRandomMutation(_blockName, _attributeName); } - public void setCurrentVariable(String _variable) { - current.setVariable(_variable); - variableNameChange = true; + public MdRandomMutation(String _blockName, String _attributeName, String _newAttributeName) { + super(_blockName, _newAttributeName); + current = new MdRandomMutation(_blockName, _attributeName); + attributeNameChange = true; + } + + public MdRandomMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + current = new MdRandomMutation(_blockName, _name, _nameType); + } + + public MdRandomMutation(String _blockName, String _name, int _nameType, String _newAttributeName) { + super(_blockName, _newAttributeName); + current = new MdRandomMutation(_blockName, _name, _nameType); + attributeNameChange = true; } public void setCurrentValues(String _minValue, String _maxValue) { @@ -84,18 +95,25 @@ public class MdRandomMutation extends RandomMutation implements MdMutation { @Override public AvatarRandom getElement(AvatarSpecification _avspec) { + AvatarRandom random = null; try { - return current.getElement(_avspec); + random = current.getElement(_avspec); } catch (Exception e) { - return super.getElement(_avspec); } + if (random == null) random = super.getElement(_avspec); + return random; } public void apply(AvatarSpecification _avspec) { AvatarRandom rand = current.getElement(_avspec); - if (variableNameChange) - rand.setVariable(this.getVariable()); + if(rand == null) { + TraceManager.addDev("Unknown random operator"); + return; + } + + if (attributeNameChange) + rand.setVariable(this.getAttributeName()); if (areValuesSet()) rand.setValues(this.getMinValue(), this.getMaxValue()); diff --git a/src/main/java/avatartranslator/mutation/MdRelationMutation.java b/src/main/java/avatartranslator/mutation/MdRelationMutation.java index 4bea56614a..99a350a8ab 100644 --- a/src/main/java/avatartranslator/mutation/MdRelationMutation.java +++ b/src/main/java/avatartranslator/mutation/MdRelationMutation.java @@ -52,20 +52,13 @@ public class MdRelationMutation extends RelationMutation implements MdMutation { private RelationMutation current; public MdRelationMutation(String _block1, String _block2) { - setBlocks(_block1, _block2); - current = new RmRelationMutation(_block1, _block2); + super(_block1, _block2); + current = new NoneRelationMutation(_block1, _block2); } - @Override - public void setName(String _name) { - current.setName(_name); - super.setName(_name); - } - - @Override - public void setUUID(String _uuid) { - current.setUUID(_uuid); - super.setUUID(_uuid); + public MdRelationMutation(String _relationString, int _relationType) { + super(_relationString, _relationType); + current = new NoneRelationMutation(_relationString, _relationType); } public void setCurrentBlocking(boolean b) { diff --git a/src/main/java/avatartranslator/mutation/MdResetTimerMutation.java b/src/main/java/avatartranslator/mutation/MdResetTimerMutation.java index ce5ccdecb8..79152eba7b 100644 --- a/src/main/java/avatartranslator/mutation/MdResetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/MdResetTimerMutation.java @@ -51,9 +51,13 @@ public class MdResetTimerMutation extends ResetTimerMutation implements MdMutati private String newTimerName; - public MdResetTimerMutation(String _timerName, String _newTimerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public MdResetTimerMutation(String _blockName, String _currentTimerName, String _newTimerName) { + super(_blockName, _currentTimerName); + newTimerName = _newTimerName; + } + + public MdResetTimerMutation(String _blockName, String _name, int _nameType, String _timerName, String _newTimerName) { + super(_blockName, _name, _nameType, _timerName); newTimerName = _newTimerName; } diff --git a/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java b/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java index f4eb7930e5..0a7002d576 100644 --- a/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/MdSetTimerMutation.java @@ -52,36 +52,44 @@ public class MdSetTimerMutation extends SetTimerMutation implements MdMutation { private String newTimerName; private boolean newTimerNameSet = false; + private String newTimerValue; private boolean newTimerValueSet = false; - public MdSetTimerMutation(String _timerName, String _newTimerName, String _timerValue, String _block) { - setTimerName(_timerName); - setBlockName(_block); - setTimerValue(_timerValue); - setNewTimerName(_newTimerName); + public MdSetTimerMutation(String _blockName, String _timerName, String _timerValue, String _newTimerValue) { + super(_blockName, _timerName, _timerValue); + setNewTimerValue(_newTimerValue); } - public MdSetTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public MdSetTimerMutation(String _blockName, String _name, int _nameType, String _newTimerValue) { + super(_blockName, _name, _nameType); + setNewTimerValue(_newTimerValue); } - public void setNewTimerName(String _newTimerName) { - newTimerName = _newTimerName; + public MdSetTimerMutation(String _blockName, String _timerName, String _timerValue, String _newTimerName, String _newTimerValue) { + super(_blockName, _timerName, _timerValue); + setNewTimer(_newTimerName, _newTimerValue); + } + + public MdSetTimerMutation(String _blockName, String _name, int _nameType, String _newTimerName, String _newTimerValue) { + super(_blockName, _name, _nameType); + setNewTimer(_newTimerName, _newTimerValue); + } + + private void setNewTimerValue(String _newTimerValue) { + newTimerValue = _newTimerValue; newTimerNameSet = true; } - @Override - public void setTimerValue(String _timerValue) { - super.setTimerValue(_timerValue); - newTimerValueSet = true; + private void setNewTimer(String _newTimerName, String _newTimerValue) { + setNewTimerValue(_newTimerValue); + newTimerName = _newTimerName; + newTimerNameSet = true; } - public void apply(AvatarSpecification _avspec) { AvatarSetTimer elt = getElement(_avspec); AvatarAttribute newTimer = getAttribute(_avspec, newTimerName); if (newTimerNameSet) elt.setTimer(newTimer); - if (newTimerValueSet) elt.setTimerValue(getTimerValue()); + if (newTimerValueSet) elt.setTimerValue(newTimerValue); } } diff --git a/src/main/java/avatartranslator/mutation/MdSignalMutation.java b/src/main/java/avatartranslator/mutation/MdSignalMutation.java index f324092eec..c282542051 100644 --- a/src/main/java/avatartranslator/mutation/MdSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/MdSignalMutation.java @@ -38,6 +38,8 @@ package avatartranslator.mutation; +import java.util.List; + import avatartranslator.*; import myutil.TraceManager; @@ -54,10 +56,8 @@ public class MdSignalMutation extends SignalMutation implements MdMutation { private boolean inoutChanged = false; private boolean parametersChanged = false; - public MdSignalMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); - initParameters(); + public MdSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); } public MdSignalMutation(String _name, String _blockName, int _inout) { @@ -72,7 +72,7 @@ public class MdSignalMutation extends SignalMutation implements MdMutation { } @Override - public void setInOut(int _inout) { + protected void setInOut(int _inout) { inoutChanged = true; super.setInOut(_inout); } @@ -87,6 +87,13 @@ public class MdSignalMutation extends SignalMutation implements MdMutation { return; } + List<AvatarSignal> sign = block.getSignals(); + if(!sign.contains(as)) { + TraceManager.addDev("Signal is from a super-bloc"); + return; + + } + if (parametersChanged) { as.removeAttributes(); for (String[] s : getParameters()) { diff --git a/src/main/java/avatartranslator/mutation/MdTransitionMutation.java b/src/main/java/avatartranslator/mutation/MdTransitionMutation.java index 5202c103bb..5cd57e3993 100644 --- a/src/main/java/avatartranslator/mutation/MdTransitionMutation.java +++ b/src/main/java/avatartranslator/mutation/MdTransitionMutation.java @@ -53,34 +53,24 @@ public class MdTransitionMutation extends TransitionMutation implements MdMutati private TransitionMutation current; - public MdTransitionMutation(String _blockName) { - setBlockName(_blockName); - initActions(); - current = new RmTransitionMutation(_blockName); + public MdTransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType) { + super(_blockName, _fromString, _fromType, _toString, _toType); + current = new NoneTransitionMutation(_blockName, _fromString, _fromType, _toString, _toType); } - public void setCurrentFromWithName(String _name) { - current.setFromWithName(_name); + public MdTransitionMutation(String _blockName, String _transitionString, int _transitionType) { + super(_blockName, _transitionString, _transitionType); + current = new NoneTransitionMutation(_blockName, _transitionString, _transitionType); } - public void setCurrentFromWithUUID(String _uuid) { - current.setFromWithUUID(_uuid); + public MdTransitionMutation(String _blockName, String _currentFromString, int _currentFromType, String _currentToString, int _currentToType, String _newFromString, int _newFromType, String _newToString, int _newToType) { + super(_blockName, _newFromString, _newFromType, _newToString, _newToType); + current = new NoneTransitionMutation(_blockName, _currentFromString, _currentFromType, _currentToString, _currentToType); } - public void setCurrentToWithName(String _name) { - current.setToWithName(_name); - } - - public void setCurrentToWithUUID(String _uuid) { - current.setToWithUUID(_uuid); - } - - public void setCurrentName(String _name) { - current.setName(_name); - } - - public void setCurrentUUID(String _uuid) { - current.setUUID(_uuid); + public MdTransitionMutation(String _blockName, String _transitionString, int _transitionType, String _newFromString, int _newFromType, String _newToString, int _newToType) { + super(_blockName, _newFromString, _newFromType, _newToString, _newToType); + current = new NoneTransitionMutation(_blockName, _transitionString, _transitionType); } public void setCurrentProbablility(double _probability) { diff --git a/src/main/java/avatartranslator/mutation/MethodMutation.java b/src/main/java/avatartranslator/mutation/MethodMutation.java index 235472c61d..ea851a0af4 100644 --- a/src/main/java/avatartranslator/mutation/MethodMutation.java +++ b/src/main/java/avatartranslator/mutation/MethodMutation.java @@ -50,9 +50,20 @@ import java.util.LinkedList; * @version 1.0 24/06/2022 */ -public abstract class MethodMutation extends BlockStructMutation { +public abstract class MethodMutation extends BlockElementMutation { - private String name; + protected MethodMutation(String _blockName, String _methodName, boolean _imp) { + super(_blockName); + setMethodName(_methodName); + initParameters(); + setImplementationProvided(_imp); + } + + protected MethodMutation(String _blockName, String _methodName) { + this(_blockName, _methodName, false); + } + + private String methodName; private boolean implementationProvided; @@ -60,15 +71,15 @@ public abstract class MethodMutation extends BlockStructMutation { protected List<String[]> parameters; - public void setName(String _name) { - name = _name; + private void setMethodName(String _methodName) { + methodName = _methodName; } - public String getName() { - return name; + protected String getMethodName() { + return methodName; } - public void initParameters() { + private void initParameters() { returnParameters = new LinkedList<>(); parameters = new LinkedList<>(); } @@ -77,7 +88,7 @@ public abstract class MethodMutation extends BlockStructMutation { returnParameters.add(_returnParameter); } - public List<String> getReturnParameters() { + protected List<String> getReturnParameters() { return returnParameters; } @@ -85,19 +96,24 @@ public abstract class MethodMutation extends BlockStructMutation { parameters.add(_parameter); } - public List<String[]> getParameters() { + public void addParameter(String _attributeName, String _attributeType) { + String[] parameter = {_attributeName, _attributeType}; + addParameter(parameter); + } + + protected List<String[]> getParameters() { return parameters; } - public void setImplementationProvided(boolean _imp) { + protected void setImplementationProvided(boolean _imp) { implementationProvided = _imp; } - public boolean isImplementationProvided() { + protected boolean isImplementationProvided() { return implementationProvided; } public AvatarMethod getElement(AvatarSpecification _avspec) { - return getMethod(_avspec, getName()); + return getMethod(_avspec, getMethodName()); } } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/NoneActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/NoneActionOnSignalMutation.java new file mode 100644 index 0000000000..6bcdf0c867 --- /dev/null +++ b/src/main/java/avatartranslator/mutation/NoneActionOnSignalMutation.java @@ -0,0 +1,72 @@ +/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ + +package avatartranslator.mutation; + +import avatartranslator.*; + +//import myutil.TraceManager; + +/** + * Class NoneActionOnSignalMutation + * Creation: 30/06/2022 + * + * @author Léon FRENOT + * @version 1.0 30/06/2022 + */ + +public class NoneActionOnSignalMutation extends ActionOnSignalMutation { + + protected NoneActionOnSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); + } + + protected NoneActionOnSignalMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected NoneActionOnSignalMutation(String _blockName, String _name, int _nameType, String _signalName) { + super(_blockName, _name, _nameType, _signalName); + } + + public void apply(AvatarSpecification _avspec) { + return; + } + + +} \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/NoneRandomMutation.java b/src/main/java/avatartranslator/mutation/NoneRandomMutation.java new file mode 100644 index 0000000000..e5178359ab --- /dev/null +++ b/src/main/java/avatartranslator/mutation/NoneRandomMutation.java @@ -0,0 +1,72 @@ +/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ + +package avatartranslator.mutation; + +import avatartranslator.*; + +//import myutil.TraceManager; + +/** + * Class NoneRandomMutation + * Creation: 30/06/2022 + * + * @author Léon FRENOT + * @version 1.0 30/06/2022 + */ + +public class NoneRandomMutation extends RandomMutation { + + protected NoneRandomMutation(String _blockName, String _attributeName) { + super(_blockName, _attributeName); + } + + protected NoneRandomMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected NoneRandomMutation(String _blockName, String _name, int _nameType, String _attributeName) { + super(_blockName, _name, _nameType, _attributeName); + } + + public void apply(AvatarSpecification _avspec) { + return; + } + + +} \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/NoneRelationMutation.java b/src/main/java/avatartranslator/mutation/NoneRelationMutation.java new file mode 100644 index 0000000000..364ab1f039 --- /dev/null +++ b/src/main/java/avatartranslator/mutation/NoneRelationMutation.java @@ -0,0 +1,64 @@ +/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ + +package avatartranslator.mutation; + +import avatartranslator.*; + +/** + * Class NoneRelationMutation + * Creation: 29/06/2022 + * + * @author Léon FRENOT + * @version 1.0 29/06/2022 + */ +public class NoneRelationMutation extends RelationMutation { + + public NoneRelationMutation(String _block1, String _block2) { + super(_block1, _block2); + } + + public NoneRelationMutation(String _relationString, int _relationType) { + super(_relationString, _relationType); + } + + public void apply(AvatarSpecification _avspec) { + return; + } + +} \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/NoneTransitionMutation.java b/src/main/java/avatartranslator/mutation/NoneTransitionMutation.java new file mode 100644 index 0000000000..4761734798 --- /dev/null +++ b/src/main/java/avatartranslator/mutation/NoneTransitionMutation.java @@ -0,0 +1,65 @@ +/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ + +package avatartranslator.mutation; + +import avatartranslator.*; +//import myutil.TraceManager; + +/** + * Class NoneTransitionMutation + * Creation: 30/06/2022 + * + * @author Léon FRENOT + * @version 1.0 30/06/2022 + */ +public class NoneTransitionMutation extends TransitionMutation { + + public NoneTransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType) { + super(_blockName, _fromString, _fromType, _toString, _toType); + } + + public NoneTransitionMutation(String _blockName, String _transitionString, int _transitionType) { + super(_blockName, _transitionString, _transitionType); + } + + public void apply(AvatarSpecification _avspec) { + return; + } + +} \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/RandomMutation.java b/src/main/java/avatartranslator/mutation/RandomMutation.java index 53522801f5..8a7b90dcaa 100644 --- a/src/main/java/avatartranslator/mutation/RandomMutation.java +++ b/src/main/java/avatartranslator/mutation/RandomMutation.java @@ -51,12 +51,23 @@ import myutil.TraceManager; * @version 1.0 27/06/2022 */ -public abstract class RandomMutation extends StateMachineElementMutation { - - private String name = ""; - private int nameType = UNDEFINED_TYPE; +public abstract class RandomMutation extends UnnamedStateMachineElementMutation { - private String variable; + protected RandomMutation(String _blockName, String _attributeName) { + super(_blockName); + setAttributeName(_attributeName); + } + + protected RandomMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected RandomMutation(String _blockName, String _name, int _nameType, String _attributeName) { + super(_blockName, _name, _nameType); + setAttributeName(_attributeName); + } + + private String attributeName; private String minValue; private String maxValue; @@ -69,45 +80,23 @@ public abstract class RandomMutation extends StateMachineElementMutation { private boolean functionSet = false; - public String getName() { - return name; - } - - public boolean isNameSet() { - return nameType != UNDEFINED_TYPE; - } - - public int getNameType() { - return nameType; - } - - public void setName(String _name) { - name = _name; - nameType = NAME_TYPE; - } - - public void setUUID(String _uuid) { - name = _uuid; - nameType = UUID_TYPE; - } - - public String getVariable() { - return variable; + protected String getAttributeName() { + return attributeName; } - public void setVariable(String _variable) { - variable = _variable; + private void setAttributeName(String _variable) { + attributeName = _variable; } - public String getMinValue() { + protected String getMinValue() { return minValue; } - public String getMaxValue() { + protected String getMaxValue() { return maxValue; } - public boolean areValuesSet() { + protected boolean areValuesSet() { return valuesSet; } @@ -117,19 +106,19 @@ public abstract class RandomMutation extends StateMachineElementMutation { valuesSet = true; } - public int getFunctionId() { + protected int getFunctionId() { return functionId; } - public String getExtraAttribute1() { + protected String getExtraAttribute1() { return extraAttribute1; } - public String getExtraAttribute2() { + protected String getExtraAttribute2() { return extraAttribute2; } - public boolean isFunctionSet() { + protected boolean isFunctionSet() { return functionSet; } @@ -148,6 +137,7 @@ public abstract class RandomMutation extends StateMachineElementMutation { extraAttribute2 = _extraAttribute2; } + @Override public AvatarRandom getElement(AvatarSpecification _avspec) { if (!isNameSet()) { //TraceManager.addDev("name not set"); @@ -157,7 +147,7 @@ public abstract class RandomMutation extends StateMachineElementMutation { if (elt instanceof AvatarRandom) { AvatarRandom rnd = (AvatarRandom)elt; //TraceManager.addDev(rnd.getNiceName()); - boolean flag = rnd.getVariable().equals(this.getVariable()); + boolean flag = rnd.getVariable().equals(this.getAttributeName()); if (this.areValuesSet()) { if (this.getMinValue().equals(rnd.getMinValue())) { flag = this.getMaxValue().equals(rnd.getMaxValue()); @@ -175,7 +165,7 @@ public abstract class RandomMutation extends StateMachineElementMutation { } return null; } - AvatarStateMachineElement element = getElement(_avspec, nameType, name); + AvatarStateMachineElement element = super.getElement(_avspec); if (element != null && element instanceof AvatarRandom) return (AvatarRandom)element; return null; } diff --git a/src/main/java/avatartranslator/mutation/RelationMutation.java b/src/main/java/avatartranslator/mutation/RelationMutation.java index a9a1ccbd6e..6878c039ff 100644 --- a/src/main/java/avatartranslator/mutation/RelationMutation.java +++ b/src/main/java/avatartranslator/mutation/RelationMutation.java @@ -53,8 +53,18 @@ import avatartranslator.*; */ public abstract class RelationMutation extends AvatarMutation implements UnnamedElementMutation { - private String name = ""; - private int nameType = UNDEFINED_TYPE; + protected RelationMutation(String _block1, String _block2) { + super(); + setBlocks(_block1, _block2); + } + + protected RelationMutation(String _relationString, int _relationType) { + super(); + setName(_relationString, _relationType); + } + + private String relationString = ""; + private int relationStringType = UNDEFINED_TYPE; private String block1, block2; @@ -67,54 +77,49 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed private int id = 0;//DG private boolean idSet = false; - public String getName() { - return name; - } - - public boolean isNameSet() { - return nameType != UNDEFINED_TYPE; + protected String getName() { + return relationString; } - public int getNameType() { - return nameType; + protected boolean isNameSet() { + return relationStringType != UNDEFINED_TYPE; } - public void setName(String _name) { - name = _name; - nameType = NAME_TYPE; + protected int getRelationStringType() { + return relationStringType; } - public void setUUID(String _uuid) { - name = _uuid; - nameType = UUID_TYPE; + private void setName(String _relationString, int _relationType) { + relationString = _relationString; + relationStringType = _relationType; } - public String getBlock1() { + protected String getBlock1() { return block1; } - public AvatarBlock getBlock1(AvatarSpecification _avspec) { + protected AvatarBlock getBlock1(AvatarSpecification _avspec) { return getBlock(_avspec, getBlock1()); } - public String getBlock2() { + protected String getBlock2() { return block2; } - public AvatarBlock getBlock2(AvatarSpecification _avspec) { + protected AvatarBlock getBlock2(AvatarSpecification _avspec) { return getBlock(_avspec, getBlock2()); } - public void setBlocks(String _block1, String _block2) { + private void setBlocks(String _block1, String _block2) { block1 = _block1; block2 = _block2; } - public boolean isBlocking() { + protected boolean isBlocking() { return blocking; } - public boolean blockingSet() { + protected boolean blockingSet() { return blockingSet; } @@ -123,11 +128,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed blockingSet = true; } - public boolean isAsynchronous() { + protected boolean isAsynchronous() { return asynchronous; } - public boolean asynchronousSet() { + protected boolean asynchronousSet() { return asynchronousSet; } @@ -136,11 +141,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed asynchronousSet = true; } - public boolean isAMS() { + protected boolean isAMS() { return ams; } - public boolean AMSSet() { + protected boolean AMSSet() { return amsSet; } @@ -149,11 +154,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed amsSet = true; } - public boolean isPrivate() { + protected boolean isPrivate() { return isPrivate; } - public boolean privateSet() { + protected boolean privateSet() { return isPrivateSet; } @@ -162,11 +167,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed isPrivateSet = true; } - public boolean isBroadcast() { + protected boolean isBroadcast() { return isBroadcast; } - public boolean broadcastSet() { + protected boolean broadcastSet() { return isBroadcastSet; } @@ -175,11 +180,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed isBroadcastSet = true; } - public boolean isLossy() { + protected boolean isLossy() { return isLossy; } - public boolean lossySet() { + protected boolean lossySet() { return isLossySet; } @@ -188,11 +193,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed isLossySet = true; } - public int getSizeOfFIFO() { + protected int getSizeOfFIFO() { return sizeOfFIFO; } - public boolean sizeOfFIFOSet() { + protected boolean sizeOfFIFOSet() { return sizeOfFIFOSet; } @@ -201,11 +206,11 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed sizeOfFIFOSet = true; } - public int getId() { + protected int getId() { return id; } - public boolean idSet() { + protected boolean idSet() { return idSet; } @@ -214,7 +219,7 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed idSet = true; } - public AvatarRelation getElementFromName(AvatarSpecification _avspec, String _name) { + private AvatarRelation getElementFromName(AvatarSpecification _avspec, String _name) { List<AvatarRelation> relations = _avspec.getRelations(); for (AvatarRelation rel : relations) { if (rel.getName().equals(_name)) return rel; @@ -222,7 +227,7 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed return null; } - public AvatarRelation getElementFromUUID(AvatarSpecification _avspec, String _uuid) { + private AvatarRelation getElementFromUUID(AvatarSpecification _avspec, String _uuid) { List<AvatarRelation> relations = _avspec.getRelations(); for (AvatarRelation rel : relations) { UUID relUUID = rel.getUUID(); @@ -268,6 +273,6 @@ public abstract class RelationMutation extends AvatarMutation implements Unnamed } return null; } - return getElement(_avspec, getNameType(), getName()); + return getElement(_avspec, getRelationStringType(), getName()); } } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/ResetTimerMutation.java b/src/main/java/avatartranslator/mutation/ResetTimerMutation.java index d64c58069c..9f2b41b236 100644 --- a/src/main/java/avatartranslator/mutation/ResetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/ResetTimerMutation.java @@ -51,6 +51,18 @@ import java.util.List; */ public abstract class ResetTimerMutation extends TimerOperatorMutation { + protected ResetTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + protected ResetTimerMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected ResetTimerMutation(String _blockName, String _name, int _nameType, String _timerName) { + super(_blockName, _name, _nameType, _timerName); + } + @Override public AvatarResetTimer getElement(AvatarSpecification _avspec) { if (isNameSet()) diff --git a/src/main/java/avatartranslator/mutation/RmActionMutation.java b/src/main/java/avatartranslator/mutation/RmActionMutation.java index a59194f38f..81388cd835 100644 --- a/src/main/java/avatartranslator/mutation/RmActionMutation.java +++ b/src/main/java/avatartranslator/mutation/RmActionMutation.java @@ -52,17 +52,21 @@ import avatartranslator.*; */ public class RmActionMutation extends ActionMutation implements RmMutation { - - public RmActionMutation(String _blockName, String _actionString) { - setBlockName(_blockName); - setActionString(_actionString); - initActions(); + + public RmActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _actionString) { + super(_blockName, _fromString, _fromType, _toString, _toType, _actionString); + } + + public RmActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, int _index) { + super(_blockName, _fromString, _fromType, _toString, _toType, _index); + } + + public RmActionMutation(String _blockName, String _transitionString, int _transitionType, String _actionString) { + super(_blockName, _transitionString, _transitionType, _actionString); } - public RmActionMutation(String _blockName, int _index) { - setBlockName(_blockName); - setIndex(_index); - initActions(); + public RmActionMutation(String _blockName, String _transitionString, int _transitionType, int _index) { + super(_blockName, _transitionString, _transitionType, _index); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java b/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java index cf298ec04a..aac744a4bb 100644 --- a/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/RmActionOnSignalMutation.java @@ -52,17 +52,23 @@ import myutil.TraceManager; public class RmActionOnSignalMutation extends ActionOnSignalMutation implements RmMutation { - public RmActionOnSignalMutation(String _signalName, String _block) { - setSignalName(_signalName); - setBlockName(_block); - initValues(); + public RmActionOnSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); } + public RmActionOnSignalMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + @Override public void apply(AvatarSpecification _avspec) { AvatarStateMachine asm = getAvatarStateMachine(_avspec); AvatarActionOnSignal aaos = getElement(_avspec); - TraceManager.addDev(aaos.toString()); + if (aaos == null) { + TraceManager.addDev("unknown ActionOnSignal"); + return; + } asm.removeElement(aaos); } - + } diff --git a/src/main/java/avatartranslator/mutation/RmAssociationMutation.java b/src/main/java/avatartranslator/mutation/RmAssociationMutation.java index 78fa553cb3..78933363e8 100644 --- a/src/main/java/avatartranslator/mutation/RmAssociationMutation.java +++ b/src/main/java/avatartranslator/mutation/RmAssociationMutation.java @@ -50,8 +50,11 @@ import avatartranslator.*; public class RmAssociationMutation extends AssociationMutation implements RmMutation { public RmAssociationMutation(String _block1, String _block2, String _signal1, String _signal2) { - setBlocks(_block1, _block2); - setSignals(_signal1, _signal2); + super(_block1, _block2, _signal1, _signal2); + } + + public RmAssociationMutation(String _relationString, int _relationType, String _signal1, String _signal2) { + super(_relationString, _relationType, _signal1, _signal2); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmAttributeMutation.java b/src/main/java/avatartranslator/mutation/RmAttributeMutation.java index b315c68073..e5d17df51d 100644 --- a/src/main/java/avatartranslator/mutation/RmAttributeMutation.java +++ b/src/main/java/avatartranslator/mutation/RmAttributeMutation.java @@ -52,9 +52,8 @@ import myutil.TraceManager; */ public class RmAttributeMutation extends AttributeMutation implements RmMutation { - public RmAttributeMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); + public RmAttributeMutation(String _blockName, String _attributeName) { + super(_blockName, _attributeName); } public void apply(AvatarSpecification _avspec) { @@ -65,6 +64,6 @@ public class RmAttributeMutation extends AttributeMutation implements RmMutation TraceManager.addDev("Unknown Attribute"); return; } - attr.remove(aa); + if (!attr.remove(aa)) TraceManager.addDev("Attribute is from a super-bloc"); } } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/RmBlockMutation.java b/src/main/java/avatartranslator/mutation/RmBlockMutation.java index 8d59519f4c..50405bffc2 100644 --- a/src/main/java/avatartranslator/mutation/RmBlockMutation.java +++ b/src/main/java/avatartranslator/mutation/RmBlockMutation.java @@ -41,6 +41,8 @@ package avatartranslator.mutation; import java.util.List; import avatartranslator.*; +import myutil.TraceManager; + /** * Class RmBlockMutation * Creation: 29/06/2022 @@ -48,11 +50,10 @@ import avatartranslator.*; * @author Léon FRENOT * @version 1.0 29/06/2022 */ - -public class RmBlockMutation extends BlockStructMutation implements RmMutation { +public class RmBlockMutation extends BlockElementMutation implements RmMutation { public RmBlockMutation(String _blockName) { - setBlockName(_blockName); + super(_blockName); } public AvatarBlock getElement(AvatarSpecification _avspec) { @@ -62,6 +63,6 @@ public class RmBlockMutation extends BlockStructMutation implements RmMutation { public void apply(AvatarSpecification _avspec) { AvatarBlock block = getElement(_avspec); List<AvatarBlock> blocks = _avspec.getListOfBlocks(); - blocks.remove(block); + if(!blocks.remove(block)) TraceManager.addDev("unknown block"); } } diff --git a/src/main/java/avatartranslator/mutation/RmExpireTimerMutation.java b/src/main/java/avatartranslator/mutation/RmExpireTimerMutation.java index c9cf79d7ec..65d484c370 100644 --- a/src/main/java/avatartranslator/mutation/RmExpireTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/RmExpireTimerMutation.java @@ -49,9 +49,12 @@ import avatartranslator.*; */ public class RmExpireTimerMutation extends ExpireTimerMutation implements RmMutation { - public RmExpireTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public RmExpireTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + public RmExpireTimerMutation(String _blockName, String _name, int _nameType, String _timerName) { + super(_blockName, _name, _nameType, _timerName); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmMethodMutation.java b/src/main/java/avatartranslator/mutation/RmMethodMutation.java index 8bdf564e54..b66343b1a1 100644 --- a/src/main/java/avatartranslator/mutation/RmMethodMutation.java +++ b/src/main/java/avatartranslator/mutation/RmMethodMutation.java @@ -52,10 +52,8 @@ import myutil.TraceManager; */ public class RmMethodMutation extends MethodMutation implements RmMutation { - public RmMethodMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); - initParameters(); + public RmMethodMutation(String _blockName, String _methodName) { + super(_blockName, _methodName); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmRandomMutation.java b/src/main/java/avatartranslator/mutation/RmRandomMutation.java index 063d8c9c6b..f1dc8f5550 100644 --- a/src/main/java/avatartranslator/mutation/RmRandomMutation.java +++ b/src/main/java/avatartranslator/mutation/RmRandomMutation.java @@ -39,6 +39,7 @@ package avatartranslator.mutation; import avatartranslator.*; +import myutil.TraceManager; /** * Class RmRandomMutation @@ -50,14 +51,23 @@ import avatartranslator.*; public class RmRandomMutation extends RandomMutation implements RmMutation { - public RmRandomMutation(String _variable, String _blockName) { - setBlockName(_blockName); - setVariable(_variable); + public RmRandomMutation(String _blockName, String _attributeName) { + super(_blockName, _attributeName); + } + + public RmRandomMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); } public void apply(AvatarSpecification _avspec) { AvatarStateMachine asm = getAvatarStateMachine(_avspec); AvatarRandom rand = getElement(_avspec); + + if(rand == null) { + TraceManager.addDev("unknown random operator"); + return; + } + asm.removeElement(rand); } diff --git a/src/main/java/avatartranslator/mutation/RmRelationMutation.java b/src/main/java/avatartranslator/mutation/RmRelationMutation.java index 32c14cb56b..4feff85d07 100644 --- a/src/main/java/avatartranslator/mutation/RmRelationMutation.java +++ b/src/main/java/avatartranslator/mutation/RmRelationMutation.java @@ -52,7 +52,11 @@ import avatartranslator.*; public class RmRelationMutation extends RelationMutation implements RmMutation { public RmRelationMutation(String _block1, String _block2) { - setBlocks(_block1, _block2); + super(_block1, _block2); + } + + public RmRelationMutation(String _relationString, int _relationType) { + super(_relationString, _relationType); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java b/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java index 01de78044e..7dc7f4ee50 100644 --- a/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/RmResetTimerMutation.java @@ -49,9 +49,12 @@ import avatartranslator.*; */ public class RmResetTimerMutation extends ResetTimerMutation implements RmMutation { - public RmResetTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public RmResetTimerMutation(String _blockName, String _timerName) { + super(_blockName, _timerName); + } + + public RmResetTimerMutation(String _blockName, String _name, int _nameType, String _timerName) { + super(_blockName, _name, _nameType, _timerName); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmSetTimerMutation.java b/src/main/java/avatartranslator/mutation/RmSetTimerMutation.java index eaad12c0db..2e048d6ddc 100644 --- a/src/main/java/avatartranslator/mutation/RmSetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/RmSetTimerMutation.java @@ -49,9 +49,12 @@ import avatartranslator.*; */ public class RmSetTimerMutation extends SetTimerMutation implements RmMutation { - public RmSetTimerMutation(String _timerName, String _block) { - setTimerName(_timerName); - setBlockName(_block); + public RmSetTimerMutation(String _blockName, String _timerName, String _timerValue) { + super(_blockName, _timerName, _timerValue); + } + + public RmSetTimerMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmSignalMutation.java b/src/main/java/avatartranslator/mutation/RmSignalMutation.java index 78a0d2e19a..9873442981 100644 --- a/src/main/java/avatartranslator/mutation/RmSignalMutation.java +++ b/src/main/java/avatartranslator/mutation/RmSignalMutation.java @@ -52,10 +52,8 @@ import myutil.TraceManager; */ public class RmSignalMutation extends SignalMutation implements RmMutation { - public RmSignalMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); - initParameters(); + public RmSignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/RmStateMutation.java b/src/main/java/avatartranslator/mutation/RmStateMutation.java index 925dbeff95..3390f9d6ef 100644 --- a/src/main/java/avatartranslator/mutation/RmStateMutation.java +++ b/src/main/java/avatartranslator/mutation/RmStateMutation.java @@ -39,6 +39,7 @@ package avatartranslator.mutation; import avatartranslator.*; +import myutil.TraceManager; /** * Class RmStateMutation @@ -50,14 +51,14 @@ import avatartranslator.*; public class RmStateMutation extends StateMutation implements RmMutation { - public RmStateMutation(String _name, String _blockName) { - setName(_name); - setBlockName(_blockName); + public RmStateMutation(String _blockName, String _stateName) { + super(_blockName, _stateName); } public void apply(AvatarSpecification _avspec) { AvatarState state = getElement(_avspec); AvatarStateMachine asm = getAvatarStateMachine(_avspec); + if (state == null) TraceManager.addDev("unknown state"); asm.removeElement(state); } } diff --git a/src/main/java/avatartranslator/mutation/RmTransitionMutation.java b/src/main/java/avatartranslator/mutation/RmTransitionMutation.java index b566f6c1fb..7818c691f5 100644 --- a/src/main/java/avatartranslator/mutation/RmTransitionMutation.java +++ b/src/main/java/avatartranslator/mutation/RmTransitionMutation.java @@ -50,9 +50,12 @@ import avatartranslator.*; */ public class RmTransitionMutation extends TransitionMutation implements RmMutation { - public RmTransitionMutation(String _blockName) { - setBlockName(_blockName); - initActions(); + public RmTransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType) { + super(_blockName, _fromString, _fromType, _toString, _toType); + } + + public RmTransitionMutation(String _blockName, String _transitionString, int _transitionType) { + super(_blockName, _transitionString, _transitionType); } public void apply(AvatarSpecification _avspec) { diff --git a/src/main/java/avatartranslator/mutation/SetTimerMutation.java b/src/main/java/avatartranslator/mutation/SetTimerMutation.java index 8964119aae..478d154e7a 100644 --- a/src/main/java/avatartranslator/mutation/SetTimerMutation.java +++ b/src/main/java/avatartranslator/mutation/SetTimerMutation.java @@ -53,14 +53,29 @@ public abstract class SetTimerMutation extends TimerOperatorMutation { private String timerValue; - public String getTimerValue() { - return timerValue; + protected SetTimerMutation(String _blockName, String _timerName, String _timerValue) { + super(_blockName, _timerName); + timerValue = _timerValue; + } + + protected SetTimerMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); + } + + protected SetTimerMutation(String _blockName, String _name, int _nameType, String _timerValue) { + super(_blockName, _name, _nameType); + timerValue = _timerValue; } - public void setTimerValue(String _timerValue) { + protected SetTimerMutation(String _blockName, String _name, int _nameType, String _timerName, String _timerValue) { + super(_blockName, _name, _nameType, _timerName); timerValue = _timerValue; } + protected String getTimerValue() { + return timerValue; + } + @Override public AvatarSetTimer getElement(AvatarSpecification _avspec) { if (isNameSet()) @@ -70,7 +85,7 @@ public abstract class SetTimerMutation extends TimerOperatorMutation { for (AvatarStateMachineElement elm : elms) { if (elm instanceof AvatarSetTimer) { AvatarSetTimer tmp = (AvatarSetTimer)elm; - if (tmp.getTimer().getName().equals(this.getTimerName())) { + if (tmp.getTimer().getName().equals(this.getTimerName()) && tmp.getTimerValue().equals(this.getTimerValue())) { return tmp; } } diff --git a/src/main/java/avatartranslator/mutation/SignalMutation.java b/src/main/java/avatartranslator/mutation/SignalMutation.java index 2050ed17ed..c72fb04557 100644 --- a/src/main/java/avatartranslator/mutation/SignalMutation.java +++ b/src/main/java/avatartranslator/mutation/SignalMutation.java @@ -49,22 +49,35 @@ import avatartranslator.*; */ public abstract class SignalMutation extends MethodMutation { + + protected SignalMutation(String _blockName, String _signalName) { + super(_blockName, _signalName); + } + + protected SignalMutation(String _blockName, String _signalName, int _inout) { + super(_blockName, _signalName); + setInOut(_inout); + } private int inout; public final static int IN = AvatarSignal.IN; public final static int OUT = AvatarSignal.OUT; - public void setInOut(int _inout) { + protected String getSignalName() { + return getMethodName(); + } + + protected void setInOut(int _inout) { inout = _inout; } - public int getInOut() { + protected int getInOut() { return inout; } @Override public AvatarSignal getElement(AvatarSpecification _avspec) { - return getSignal(_avspec, getName()); + return getSignal(_avspec, getMethodName()); } } diff --git a/src/main/java/avatartranslator/mutation/StateMachineElementMutation.java b/src/main/java/avatartranslator/mutation/StateMachineElementMutation.java index d7fb256130..ea841af7d1 100644 --- a/src/main/java/avatartranslator/mutation/StateMachineElementMutation.java +++ b/src/main/java/avatartranslator/mutation/StateMachineElementMutation.java @@ -40,9 +40,6 @@ package avatartranslator.mutation; import avatartranslator.*; -import java.util.List; -import java.util.UUID; - /** * Class AvatarStateMachineElementMutation * Creation: 27/06/2022 @@ -51,39 +48,14 @@ import java.util.UUID; * @version 1.0 27/06/2022 */ -public abstract class StateMachineElementMutation extends BlockStructMutation implements UnnamedElementMutation { - - public AvatarStateMachine getAvatarStateMachine(AvatarSpecification _avspec) { - AvatarBlock block = getBlock(_avspec); - return block.getStateMachine(); - } - - public AvatarStateMachineElement getElementFromName(AvatarSpecification _avspec, String _name) { - AvatarStateMachine asm = getAvatarStateMachine(_avspec); - List<AvatarStateMachineElement> elts = asm.getListOfElements(); - for (AvatarStateMachineElement elt : elts) { - if (elt.getName().equals(_name)) return elt; - } - return null; - } - - public AvatarStateMachineElement getElementFromUUID(AvatarSpecification _avspec, String _uuid) { - AvatarStateMachine asm = getAvatarStateMachine(_avspec); - List<AvatarStateMachineElement> elts = asm.getListOfElements(); - for (AvatarStateMachineElement elt : elts) { - UUID eltUUID = elt.getUUID(); - UUID uuid = UUID.fromString(_uuid); - if (eltUUID != null) { - if (eltUUID.equals(uuid)) return elt; - } - } - return null; +public abstract class StateMachineElementMutation extends BlockElementMutation { + protected StateMachineElementMutation(String _blockName) { + super(_blockName); } - public AvatarStateMachineElement getElement(AvatarSpecification _avspec, int _type, String _name) { - if (_type == NAME_TYPE) return getElementFromName(_avspec, _name); - if (_type == UUID_TYPE) return getElementFromUUID(_avspec, _name); - return null; + protected AvatarStateMachine getAvatarStateMachine(AvatarSpecification _avspec) { + AvatarBlock block = getBlock(_avspec); + return block.getStateMachine(); } } diff --git a/src/main/java/avatartranslator/mutation/StateMutation.java b/src/main/java/avatartranslator/mutation/StateMutation.java index e79bb03294..b52c588b07 100644 --- a/src/main/java/avatartranslator/mutation/StateMutation.java +++ b/src/main/java/avatartranslator/mutation/StateMutation.java @@ -49,19 +49,25 @@ import avatartranslator.*; */ public abstract class StateMutation extends StateMachineElementMutation { - private String name; - public void setName(String _name) { - name = _name; + protected StateMutation(String _blockName, String _stateName) { + super(_blockName); + setStateName(_stateName); } - public String getName() { - return name; + private String stateName; + + private void setStateName(String _stateName) { + stateName = _stateName; + } + + public String getStateName() { + return stateName; } public AvatarState getElement(AvatarSpecification _avspec) { AvatarStateMachine asm = getAvatarStateMachine(_avspec); - AvatarState state = asm.getStateWithName(getName()); + AvatarState state = asm.getStateWithName(getStateName()); return state; } diff --git a/src/main/java/avatartranslator/mutation/SwapActionMutation.java b/src/main/java/avatartranslator/mutation/SwapActionMutation.java index 6148bb04a5..8587b9ea14 100644 --- a/src/main/java/avatartranslator/mutation/SwapActionMutation.java +++ b/src/main/java/avatartranslator/mutation/SwapActionMutation.java @@ -54,28 +54,32 @@ import avatartranslator.*; public class SwapActionMutation extends ActionMutation implements MdMutation { - private int maxIndex; + private int index2; - public SwapActionMutation(String _blockName, int _index1, int _index2) { - int minIndex = Math.min(_index1, _index2); - int maxIndex = Math.max(_index1, _index2); + public SwapActionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, int _index1, int _index2) { + super(_blockName, _fromString, _fromType, _toString, _toType, _index1); + index2 = _index2; + } - setBlockName(_blockName); - setIndex(minIndex); - this.maxIndex = maxIndex; - initActions(); + public SwapActionMutation(String _blockName, String _transitionString, int _transitionType, int _index1, int _index2) { + super(_blockName, _transitionString, _transitionType, _index1); + index2 = _index2; } public void apply(AvatarSpecification _avspec) { AvatarTransition transition = getElement(_avspec); List<AvatarAction> actions = transition.getActions(); - AvatarAction action1 = actions.get(getIndex()); + + int minIndex = Math.min(getIndex(), index2); + int maxIndex = Math.max(getIndex(), index2); + + AvatarAction action1 = actions.get(minIndex); AvatarAction action2 = actions.get(maxIndex); - actions.remove(getIndex()); + actions.remove(minIndex); actions.remove(maxIndex); - actions.add(getIndex(), action2); + actions.add(minIndex, action2); actions.add(maxIndex, action1); } } \ No newline at end of file diff --git a/src/main/java/avatartranslator/mutation/TimerOperatorMutation.java b/src/main/java/avatartranslator/mutation/TimerOperatorMutation.java index 2c088e266a..2fb7ccbec5 100644 --- a/src/main/java/avatartranslator/mutation/TimerOperatorMutation.java +++ b/src/main/java/avatartranslator/mutation/TimerOperatorMutation.java @@ -48,45 +48,34 @@ import avatartranslator.*; * @version 1.0 28/06/2022 */ -public abstract class TimerOperatorMutation extends StateMachineElementMutation { +public abstract class TimerOperatorMutation extends UnnamedStateMachineElementMutation { - private String timerName; - private String name = ""; - private int nameType = UNDEFINED_TYPE; - - public String getTimerName() { - return timerName; - } - - public void setTimerName(String _name) { - timerName = _name; + protected TimerOperatorMutation(String _blockName, String _timerName) { + super(_blockName); + setTimerName(_timerName); } - public String getName() { - return name; + protected TimerOperatorMutation(String _blockName, String _name, int _nameType) { + super(_blockName, _name, _nameType); } - public boolean isNameSet() { - return nameType != UNDEFINED_TYPE; + protected TimerOperatorMutation(String _blockName, String _name, int _nameType, String _timerName) { + this(_blockName, _name, _nameType); + setTimerName(_timerName); } - public void setName(String _name) { - name = _name; - nameType = NAME_TYPE; - } - - public void setUUID(String _name) { - name = _name; - nameType = UUID_TYPE; + private String timerName; + + protected String getTimerName() { + return timerName; } - public AvatarAttribute getAttribute(AvatarSpecification _avspec, String _timerName) { - AvatarBlock block = getBlock(_avspec); - return block.getAvatarAttributeWithName(_timerName); + private void setTimerName(String _name) { + timerName = _name; } public AvatarTimerOperator getElement(AvatarSpecification _avspec) { - return (AvatarTimerOperator)getElement(_avspec, nameType, name); + return (AvatarTimerOperator)super.getElement(_avspec); } } diff --git a/src/main/java/avatartranslator/mutation/TransitionMutation.java b/src/main/java/avatartranslator/mutation/TransitionMutation.java index e688c8aaeb..7c41f77e2a 100644 --- a/src/main/java/avatartranslator/mutation/TransitionMutation.java +++ b/src/main/java/avatartranslator/mutation/TransitionMutation.java @@ -52,15 +52,33 @@ import java.util.List; * @version 1.0 27/06/2022 */ -public abstract class TransitionMutation extends StateMachineElementMutation { +public abstract class TransitionMutation extends UnnamedStateMachineElementMutation { + + protected TransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType) { + super(_blockName); + setFrom(_fromString, _fromType); + setTo(_toString, _toType); + initActions(); + } + + protected TransitionMutation(String _blockName, String _transitionString, int _transitionType) { + super(_blockName); + setTransition(_transitionString, _transitionType); + initActions(); + } + + protected TransitionMutation(String _blockName, String _fromString, int _fromType, String _toString, int _toType, String _transitionString, int _transitionType) { + this(_blockName, _fromString, _fromType, _toString, _toType); + setTransition(_transitionString, _transitionType); + } private String fromString; private String toString; - private String nameString; + private String transitionString; private int fromType = UNDEFINED_TYPE; private int toType = UNDEFINED_TYPE; - private int nameType = UNDEFINED_TYPE; + private int transitionType = UNDEFINED_TYPE; private double probability; private boolean probabilitySet = false; @@ -81,32 +99,27 @@ public abstract class TransitionMutation extends StateMachineElementMutation { private List<String> actions; // actions on variable, or method call private boolean actionsSet = false; - private void setFrom(String _name) { - fromString = _name; - } - - public void setFromWithName(String _name) { - setFrom(_name); - fromType = NAME_TYPE; + private void setFrom(String _fromString) { + fromString = _fromString; } - public void setFromWithUUID(String _uuid) { - setFrom(_uuid); - fromType = UUID_TYPE; + private void setFrom(String _fromString, int _fromType) { + setFrom(_fromString); + fromType = _fromType; } - public String getFrom() { + protected String getFrom() { return fromString; } - public AvatarStateMachineElement getFromElement(AvatarSpecification _avspec) { + protected AvatarStateMachineElement getFromElement(AvatarSpecification _avspec) { if (isFromSet()) return getElement(_avspec, fromType, fromString); AvatarTransition trans = getElement(_avspec); AvatarStateMachine asm = getAvatarStateMachine(_avspec); return asm.getElementsLeadingTo(trans).get(0); } - public boolean isFromSet() { + protected boolean isFromSet() { return fromType!=UNDEFINED_TYPE; } @@ -114,43 +127,41 @@ public abstract class TransitionMutation extends StateMachineElementMutation { toString = _name; } - public void setToWithName(String _name) { - setTo(_name); - toType = NAME_TYPE; - } - - public void setToWithUUID(String _uuid) { - setTo(_uuid); - toType = UUID_TYPE; + private void setTo(String _toString, int _toType) { + setTo(_toString); + fromType = _toType; } - public String getTo() { + protected String getTo() { return toString; } - public AvatarStateMachineElement getToElement(AvatarSpecification _avspec) { + protected AvatarStateMachineElement getToElement(AvatarSpecification _avspec) { if (isToSet()) return getElement(_avspec, toType, toString); AvatarTransition trans = getElement(_avspec); return trans.getNext(0); } - public boolean isToSet() { + protected boolean isToSet() { return toType!=UNDEFINED_TYPE; } - public void setName(String _name) { - nameString = _name; - nameType = NAME_TYPE; + private void setTransition(String _transitionString) { + transitionString = _transitionString; + } + + private void setTransition(String _transitionString, int _transitionType) { + setTransition(_transitionString); + transitionType = _transitionType; } - public void setUUID(String _uuid) { - nameString = _uuid; - nameType = UUID_TYPE; + protected String getTransition() { + if (transitionType == UNDEFINED_TYPE) return "undefined"; + return transitionString; } - public String getName() { - if (nameType == UNDEFINED_TYPE) return "undefined"; - return nameString; + protected boolean isTransitionSet() { + return transitionType != UNDEFINED_TYPE; } public void setProbability(double _probability) { @@ -158,11 +169,11 @@ public abstract class TransitionMutation extends StateMachineElementMutation { probabilitySet = true; } - public boolean isProbabilitySet() { + protected boolean isProbabilitySet() { return probabilitySet; } - public double getProbability() { + protected double getProbability() { return probability; } @@ -171,15 +182,15 @@ public abstract class TransitionMutation extends StateMachineElementMutation { guardSet = true; } - public boolean isGuardSet() { + protected boolean isGuardSet() { return guardSet; } - public String getGuard() { + protected String getGuard() { return guard; } - public AvatarGuard getAvatarGuard(AvatarSpecification _avspec) { + protected AvatarGuard getAvatarGuard(AvatarSpecification _avspec) { return AvatarGuard.createFromString(getBlock(_avspec), getGuard()); } @@ -189,35 +200,35 @@ public abstract class TransitionMutation extends StateMachineElementMutation { delaysSet = true; } - public boolean areDelaysSet() { + protected boolean areDelaysSet() { return delaysSet; } - public String getMinDelay() { + protected String getMinDelay() { return minDelay; } - public String getMaxDelay() { + protected String getMaxDelay() { if (maxDelay.trim().length() == 0) { return getMinDelay(); } return maxDelay; } - public void setDelayExtra(String _delayExtra) { + protected void setDelayExtra(String _delayExtra) { delayExtra1 = _delayExtra; } - public void setDelayExtras(String _delayExtra1, String _delayExtra2) { + protected void setDelayExtras(String _delayExtra1, String _delayExtra2) { setDelayExtra(_delayExtra1); delayExtra2 = _delayExtra2; } - public String getDelayExtra1() { + protected String getDelayExtra1() { return delayExtra1; } - public String getDelayExtra2() { + protected String getDelayExtra2() { return delayExtra2; } @@ -225,17 +236,22 @@ public abstract class TransitionMutation extends StateMachineElementMutation { delayDistributionLaw = _law; delayDistributionLawSet = true; } + + public void setDelayDistributionLaw(int _law, String _delayExtra1) { + setDelayDistributionLaw(_law); + setDelayExtra(_delayExtra1); + } public void setDelayDistributionLaw(int _law, String _delayExtra1, String _delayExtra2) { setDelayDistributionLaw(_law); setDelayExtras(_delayExtra1, _delayExtra2); } - public boolean isDelayDistributionLawSet() { + protected boolean isDelayDistributionLawSet() { return delayDistributionLawSet; } - public int getDelayDistributionLaw() { + protected int getDelayDistributionLaw() { return delayDistributionLaw; } @@ -245,22 +261,22 @@ public abstract class TransitionMutation extends StateMachineElementMutation { computesSet = true; } - public boolean areComputesSet() { + protected boolean areComputesSet() { return computesSet; } - public String getMinCompute() { + protected String getMinCompute() { return minCompute; } - public String getMaxCompute() { + protected String getMaxCompute() { if (maxCompute.trim().length() == 0) { return getMinCompute(); } return maxCompute; } - public void initActions() { + private void initActions() { actions = new LinkedList<>(); } @@ -274,21 +290,21 @@ public abstract class TransitionMutation extends StateMachineElementMutation { actionsSet = true; } - public boolean areActionsSet() { + protected boolean areActionsSet() { return actionsSet; } - public List<String> getActions() { + protected List<String> getActions() { return actions; } - public String getAction(int _index) { + protected String getAction(int _index) { return getActions().get(_index); } public AvatarTransition getElement(AvatarSpecification _avspec) { //TraceManager.addDev(String.valueOf(nameType)); - if (nameType == UNDEFINED_TYPE) { + if (transitionType == UNDEFINED_TYPE) { AvatarStateMachineElement fromElement = getElement(_avspec, fromType, fromString); //TraceManager.addDev(fromElement.toString()); AvatarStateMachineElement toElement = getElement(_avspec, toType, toString); @@ -338,7 +354,7 @@ public abstract class TransitionMutation extends StateMachineElementMutation { } return null; } - AvatarStateMachineElement element = getElement(_avspec, nameType, nameString); + AvatarStateMachineElement element = getElement(_avspec, transitionType, transitionString); if (element != null && element instanceof AvatarTransition) return (AvatarTransition)element; return null; } diff --git a/src/main/java/avatartranslator/mutation/UnnamedElementMutation.java b/src/main/java/avatartranslator/mutation/UnnamedElementMutation.java index 66fd6df4e9..50f34ae4b2 100644 --- a/src/main/java/avatartranslator/mutation/UnnamedElementMutation.java +++ b/src/main/java/avatartranslator/mutation/UnnamedElementMutation.java @@ -38,8 +38,6 @@ package avatartranslator.mutation; -import java.util.List; - import avatartranslator.*; /** diff --git a/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java b/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java new file mode 100644 index 0000000000..942fe4c8c8 --- /dev/null +++ b/src/main/java/avatartranslator/mutation/UnnamedStateMachineElementMutation.java @@ -0,0 +1,121 @@ +/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ + +package avatartranslator.mutation; + +import avatartranslator.*; + +import java.util.List; +import java.util.UUID; + +/** + * Class OperatorMutation + * Creation: 30/06/2022 + * + * @author Léon FRENOT + * @version 1.0 30/06/2022 + */ + +public abstract class UnnamedStateMachineElementMutation extends StateMachineElementMutation implements UnnamedElementMutation { + + protected UnnamedStateMachineElementMutation(String _blockName) { + super(_blockName); + } + + protected UnnamedStateMachineElementMutation(String _blockName, String _name, int _nameType) { + super(_blockName); + setName(_name, _nameType); + } + + private String name = ""; + private int nameType = UNDEFINED_TYPE; + + protected String getName() { + return name; + } + + protected boolean isNameSet() { + return nameType != UNDEFINED_TYPE; + } + + protected int getNameType() { + return nameType; + } + + private void setName(String _name) { + name = _name; + } + + private void setName(String _name, int _nameType) { + setName(_name); + nameType = _nameType; + } + + private AvatarStateMachineElement getElementFromName(AvatarSpecification _avspec, String _name) { + AvatarStateMachine asm = getAvatarStateMachine(_avspec); + List<AvatarStateMachineElement> elts = asm.getListOfElements(); + for (AvatarStateMachineElement elt : elts) { + if (elt.getName().equals(_name)) return elt; + } + return null; + } + + private AvatarStateMachineElement getElementFromUUID(AvatarSpecification _avspec, String _uuid) { + AvatarStateMachine asm = getAvatarStateMachine(_avspec); + List<AvatarStateMachineElement> elts = asm.getListOfElements(); + for (AvatarStateMachineElement elt : elts) { + UUID eltUUID = elt.getUUID(); + UUID uuid = UUID.fromString(_uuid); + if (eltUUID != null) { + if (eltUUID.equals(uuid)) return elt; + } + } + return null; + } + + public AvatarStateMachineElement getElement(AvatarSpecification _avspec, int _type, String _name) { + if (_type == NAME_TYPE) return getElementFromName(_avspec, _name); + if (_type == UUID_TYPE) return getElementFromUUID(_avspec, _name); + return null; + } + + public AvatarStateMachineElement getElement(AvatarSpecification _avspec) { + return getElement(_avspec, getNameType(), getName()); + } + +} \ No newline at end of file -- GitLab