Skip to content
Snippets Groups Projects
Commit dbbca8e8 authored by Bastien Sultan's avatar Bastien Sultan
Browse files

Adding some new features to JURASSIC AMULET compiler

parent 48f831e1
No related branches found
No related tags found
1 merge request!478Adding a compiler for JURASSIC AMULET
......@@ -5,9 +5,6 @@ import tmltranslator.TMLModeling;
import tmltranslator.TMLTask;
public class AddDataConnectionMutation extends DataConnectionMutation{
protected AddDataConnectionMutation(String _originTaskName, String _destinationTaskName, String _connectionName) {
super(_originTaskName, _destinationTaskName, _connectionName);
}
protected AddDataConnectionMutation(String _originTaskName, String _destinationTaskName, String _connectionName, String _connectionSemantics) {
super(_originTaskName, _destinationTaskName, _connectionName);
......@@ -21,14 +18,7 @@ public class AddDataConnectionMutation extends DataConnectionMutation{
}
public TMLChannel createElement(TMLModeling<?> _tmlModel) throws ApplyDiplodocusMutationException{
String appName = "";
if (_tmlModel.getTasks().size() != 0){
appName = _tmlModel.getTasks().get(0).getName().split("__")[0];
}
if (_tmlModel.getChannelByName(getConnectionName())!=null){
throw new ApplyDiplodocusMutationException("A data connection named " + getConnectionName() + " already exists in the current model.");
}
if (_tmlModel.getChannelByName(appName + "__" +getConnectionName())!=null){
if (getDataConnection(_tmlModel)!=null){
throw new ApplyDiplodocusMutationException("A data connection named " + getConnectionName() + " already exists in the current model.");
}
......
......@@ -16,6 +16,11 @@ public abstract class ConnectionMutation extends DiplodocusMutation{
setConnectionName(_connectionName);
}
protected ConnectionMutation(String _connectionName){
super();
setConnectionName(_connectionName);
}
public void setConnectionName(String _connectionName){
connectionName = _connectionName;
}
......
......@@ -11,6 +11,10 @@ public abstract class DataConnectionMutation extends ConnectionMutation{
super(_originTaskName, _destinationTaskName, _connectionName);
}
protected DataConnectionMutation(String _connectionName){
super(_connectionName);
}
/*public void setBRBW(boolean b){
BRBW = b;
}
......@@ -43,9 +47,9 @@ public abstract class DataConnectionMutation extends ConnectionMutation{
appName = _tmlModel.getTasks().get(0).getName().split("__")[0];
}
for (TMLChannel c:channels){
if(c.getName() == getConnectionName()){
if (c.getName().equals(getConnectionName())) {
return c;
} else if(c.getName() == appName + "__" + getConnectionName()){
} else if (c.getName().equals(appName + "__" + getConnectionName())) {
return c;
}
}
......@@ -58,6 +62,7 @@ public abstract class DataConnectionMutation extends ConnectionMutation{
return AddDataConnectionMutation.createFromString(toParse);
case "RM":
case "REMOVE":
return RemoveDataConnectionMutation.createFromString(toParse);
default:
break;
}
......
package tmltranslator.mutations;
import tmltranslator.TMLChannel;
import tmltranslator.TMLModeling;
public class RemoveDataConnectionMutation extends DataConnectionMutation{
protected RemoveDataConnectionMutation(String _connectionName) {
super(_connectionName);
}
@Override
public void apply(TMLModeling<?> _tmlModel) throws ApplyDiplodocusMutationException {
TMLChannel channel = getDataConnection(_tmlModel);
if (channel == null) {
throw new ApplyDiplodocusMutationException("There is no channel named " + getConnectionName() + " in this model.");
} else {
_tmlModel.removeChannel(channel);
}
}
public static RemoveDataConnectionMutation createFromString(String toParse) throws ParseDiplodocusMutationException{
RemoveDataConnectionMutation mutation = null;
String[] tokens = DiplodocusMutationParser.tokenise(toParse);
int index = DiplodocusMutationParser.indexOf(tokens,"CONNECTION");
if (tokens.length == index+1) {
throw new ParseDiplodocusMutationException("Connection name missing. Expected syntax is remove data connection connectionName.");
}
else {
mutation = new RemoveDataConnectionMutation(tokens[index+1]);
}
mutation.setMutationType("TMLmutation");
return mutation;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment