removing unused methods/imports from utils and ensuring we use new iterable collections everywhere
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/META-INF/MANIFEST.MF b/plugins/org.eclipse.epsilon.emc.simulink/META-INF/MANIFEST.MF
index 67d1ac0..d8d1663 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.epsilon.emc.simulink/META-INF/MANIFEST.MF
@@ -17,3 +17,4 @@
org.eclipse.epsilon.emc.simulink.util,
org.eclipse.epsilon.emc.simulink.util.collection,
org.eclipse.epsilon.emc.simulink.util.manager
+Automatic-Module-Name: org.eclipse.epsilon.emc.simulink
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/engine/MatlabEngineCommands.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/engine/MatlabEngineCommands.java
deleted file mode 100644
index b63bb1c..0000000
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/engine/MatlabEngineCommands.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*********************************************************************
-* Copyright (c) 2008 The University of York.
-*
-* This program and the accompanying materials are made
-* available under the terms of the Eclipse Public License 2.0
-* which is available at https://www.eclipse.org/legal/epl-2.0/
-*
-* SPDX-License-Identifier: EPL-2.0
-**********************************************************************/
-
-package org.eclipse.epsilon.emc.simulink.engine;
-
-public class MatlabEngineCommands {
-
- /** COMMANDS */
- public static final String ASSIGN = "? = ?";
- public static final String INSPECT = "inspect(?);";
- public static final String HANDLE = "handle = ?;";
- public static final String HANDLES = "handles = ";
- public static final String INSPECT_HANDLE = "inspect(handle);";
-
- public static final String GET_HANDLE_PROPERTY = "get_param(handle, '?');";
- public static final String GET_PROPERTY = "get_param(?, '?');";
- public static final String SET_HANDLE_PROPERTY = "set_param(handle, '?', '?');";
- public static final String SET_PROPERTY = "set_param(?, '?', '?');";
-
- /** OPERATION */
- public static final String LINE_BREAK = "\n";
- public static final String COMMAND_END = ";";
- public static final String SEP = " ";
-
- public static final String HANDLE_INSPECT_HANDLE = HANDLE + INSPECT_HANDLE;
- public static final String GET_PROPERTY_FROM_HANDLE = HANDLE + GET_HANDLE_PROPERTY;
- public static final String SET_PROPERTY_TO_HANDLE = HANDLE + SET_HANDLE_PROPERTY;
-
-}
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkBlock.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkBlock.java
index 0f7eef6..ebe4d86 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkBlock.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkBlock.java
@@ -9,23 +9,14 @@
**********************************************************************/
package org.eclipse.epsilon.emc.simulink.model.element;
-import static org.eclipse.epsilon.emc.simulink.engine.MatlabEngineCommands.SET_PROPERTY_TO_HANDLE;
-
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
import org.eclipse.epsilon.emc.simulink.engine.MatlabEngine;
import org.eclipse.epsilon.emc.simulink.exception.MatlabException;
import org.eclipse.epsilon.emc.simulink.exception.MatlabRuntimeException;
import org.eclipse.epsilon.emc.simulink.model.SimulinkModel;
-import org.eclipse.epsilon.emc.simulink.model.TypeHelper.Kind;
-import org.eclipse.epsilon.emc.simulink.util.MatlabEngineUtil;
import org.eclipse.epsilon.emc.simulink.util.SimulinkUtil;
import org.eclipse.epsilon.emc.simulink.util.collection.SimulinkPortCollection;
-import org.eclipse.epsilon.eol.exceptions.EolIllegalOperationException;
import org.eclipse.epsilon.eol.exceptions.EolIllegalPropertyException;
import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkElement.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkElement.java
index 866051b..e696c1c 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkElement.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/SimulinkElement.java
@@ -9,8 +9,6 @@
**********************************************************************/
package org.eclipse.epsilon.emc.simulink.model.element;
-import static org.eclipse.epsilon.emc.simulink.engine.MatlabEngineCommands.GET_HANDLE_PROPERTY;
-
import java.util.Arrays;
import java.util.Collection;
@@ -30,6 +28,7 @@
protected static final String GET_SIMULINK_KIND = "get_param(handle, 'Type');";
protected static final String GET_SIMULINK_TYPE = "get_param(handle, '%sType');";
protected static final String GET_FULL_NAME = "getfullname(?);";
+ protected static final String GET_HANDLE_PROPERTY = "get_param(handle, '?');";
protected Double handle = null;
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/StateflowBlock.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/StateflowBlock.java
index 716c8bd..6b5e693 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/StateflowBlock.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/model/element/StateflowBlock.java
@@ -11,7 +11,6 @@
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -21,6 +20,7 @@
import org.eclipse.epsilon.emc.simulink.model.TypeHelper.Kind;
import org.eclipse.epsilon.emc.simulink.util.SimulinkUtil;
import org.eclipse.epsilon.emc.simulink.util.StateflowUtil;
+import org.eclipse.epsilon.emc.simulink.util.collection.StateflowBlockCollection;
import org.eclipse.epsilon.eol.exceptions.EolIllegalPropertyException;
import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
@@ -259,13 +259,13 @@
}
}
- public Collection<StateflowBlock> getChildren() {
+ public StateflowBlockCollection getChildren() {
try {
String handle = StateflowUtil.getBlockHandle(this);
Object children = (Object) this.engine.evalWithSetupAndResult("list = ?.find('-depth',1); list = setdiff(list, ?);", "get(list,'Id');", handle, handle);
- return StateflowUtil.getStateflowBlocks(model, engine, children);
+ return new StateflowBlockCollection(children, model);
} catch (MatlabException e) {
- return Collections.<StateflowBlock>emptyList();
+ return new StateflowBlockCollection(null, model);
}
}
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/operations/contributors/ModelOperationContributor.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/operations/contributors/ModelOperationContributor.java
index 48b7780..836e5ac 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/operations/contributors/ModelOperationContributor.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/operations/contributors/ModelOperationContributor.java
@@ -13,7 +13,6 @@
import org.eclipse.epsilon.emc.simulink.introspection.java.SimulinkObjectMethod;
import org.eclipse.epsilon.emc.simulink.introspection.java.StateflowObjectMethod;
import org.eclipse.epsilon.emc.simulink.model.SimulinkModel;
-import org.eclipse.epsilon.emc.simulink.model.element.SimulinkBlock;
import org.eclipse.epsilon.emc.simulink.model.element.SimulinkElement;
import org.eclipse.epsilon.emc.simulink.model.element.SimulinkModelElement;
import org.eclipse.epsilon.emc.simulink.model.element.StateflowBlock;
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/SimulinkUtil.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/SimulinkUtil.java
index e936641..fc9734c 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/SimulinkUtil.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/SimulinkUtil.java
@@ -80,11 +80,11 @@
return "handle = " + objHandle + "; " + handleMethodWithResult(methodName, list.toArray());
}
- public static String handleMethodWithResult(String methodName, Object[] parameters) {
+ private static String handleMethodWithResult(String methodName, Object[] parameters) {
return "result = " + handleMethod(methodName, parameters);
}
- public static String handleMethod(String methodName, Object[] parameters) {
+ private static String handleMethod(String methodName, Object[] parameters) {
String cmd = methodName;
if (parameters != null && parameters.length > 0) {
cmd += "(" + parameters[0];
@@ -105,53 +105,6 @@
return -1.0;
}
- /** GENERAL COLLECTION */
-
- public static <T extends ISimulinkModelElement> List<T> getTypeList(Class<T> returnType, SimulinkModel model, MatlabEngine engine, Object elements) {
-
- List<T> list = new ArrayList<T>();
-
- if (elements instanceof List) {
- try{
- for (Object element : (List<?>) elements) {
- if (element instanceof String) {
- String path = (String) element;
- T instantiate = instantiate(returnType, model, engine, null, path);
- if (instantiate!= null) list.add(instantiate);
- } else if (element instanceof Double) {
- Double handle = (Double) element;
- T instantiate = instantiate(returnType, model, engine, handle, null);
- if (instantiate!= null) list.add(instantiate);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println(e.getMessage());
- }
- } else if (elements instanceof String) {
- T instantiate = instantiate(returnType, model, engine, null, (String) elements);
- if (instantiate!= null) list.add(instantiate);
- } else if (elements instanceof Double) {
- T instantiate = instantiate(returnType, model, engine, (Double) elements, null);
- if (instantiate!= null) list.add(instantiate);
- }
- return list;
- }
-
- private static <T> T instantiate(Class<T> clazz, SimulinkModel model, MatlabEngine engine, Double handle, String path) {
- try {
- if (handle != null) {
- return clazz.getConstructor(SimulinkModel.class, MatlabEngine.class, Double.class).newInstance(model, engine, handle);
- } else if (path != null) {
- return clazz.getConstructor(String.class, SimulinkModel.class, MatlabEngine.class).newInstance(path, model, engine);
- } else {
- return null;
- }
- } catch (Exception e) {
- return null;
- }
- }
-
/** SPECIFIC COLLECTION */
public static List<ISimulinkModelElement> getChildren(SimulinkModel model, SimulinkBlock block) throws MatlabException {
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/StateflowUtil.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/StateflowUtil.java
index 28c6b7d..fd28500 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/StateflowUtil.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/StateflowUtil.java
@@ -9,13 +9,10 @@
**********************************************************************/
package org.eclipse.epsilon.emc.simulink.util;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
import java.util.UUID;
-import java.util.stream.Collectors;
import org.eclipse.epsilon.emc.simulink.engine.MatlabEngine;
import org.eclipse.epsilon.emc.simulink.exception.MatlabException;
@@ -34,18 +31,23 @@
private static final String FIND_BLOCK_TYPE = "list = ?.find('-isa','?');";
private static final String GET_IDS = "get(list, 'Id');";
private static final String FIND_BY_ID = "? = ?.find('Id', ?);";
- private static final String FIND_BY_PATH = "? = ?.find('Path', '?');";
private static final String FIND_BY_TYPE_PATH = "? = ?.find('-isa', '?', 'Path', '?');";
/*************/
/** HANDLES **/
/*************/
- public static String randomHandleName() {
- return "e" + UUID.randomUUID().toString().replace("-", "").substring(0, 10);
+ public static String getBlockHandleFromId(SimulinkModel model, MatlabEngine engine, Double id) throws MatlabException {
+ return getBlockHandleFromId(model, engine, id.intValue());
+ }
+
+ public static String getBlockHandle(StateflowBlock block) throws MatlabException {
+ String varName = randomHandleName();
+ getBlockHandleAs(block, varName);
+ return varName;
}
- public static void getBlockHandleAs(StateflowBlock block, String varName) throws MatlabException {
+ private static void getBlockHandleAs(StateflowBlock block, String varName) throws MatlabException {
modelHandleAsM(block);
if (block.getId() != null) {
block.getEngine().eval(FIND_BY_ID, varName, M, block.getId().intValue());
@@ -53,51 +55,31 @@
block.getEngine().eval(FIND_BY_TYPE_PATH, varName, M, block.getType(), block.getPath());
}
}
-
- public static String getBlockHandle(StateflowBlock block) throws MatlabException {
- String varName = randomHandleName();
- getBlockHandleAs(block, varName);
- return varName;
+
+ private static String randomHandleName() {
+ return "e" + UUID.randomUUID().toString().replace("-", "").substring(0, 10);
}
- public static String getBlockHandleFromId(SimulinkModel model, MatlabEngine engine, Integer id) throws MatlabException {
+ private static String getBlockHandleFromId(SimulinkModel model, MatlabEngine engine, Integer id) throws MatlabException {
modelHandleAsM(model);
String varName = randomHandleName();
engine.eval(FIND_BY_ID, varName, M, id.intValue());
return varName;
}
-
- public static String getBlockHandleFromPath(SimulinkModel model, MatlabEngine engine, String path) throws MatlabException {
- modelHandleAsM(model);
- String varName = randomHandleName();
- engine.eval(FIND_BY_PATH, varName, M, path);
- return varName;
- }
-
- public static String getBlockHandleFromTypeAndPath(SimulinkModel model, MatlabEngine engine, String type, String path) throws MatlabException {
- modelHandleAsM(model);
- String varName = randomHandleName();
- engine.eval(FIND_BY_TYPE_PATH, varName, M, type, path);
- return varName;
- }
-
- public static String getBlockHandleFromId(SimulinkModel model, MatlabEngine engine, Double id) throws MatlabException {
- return getBlockHandleFromId(model, engine, id.intValue());
- }
- public static void modelHandleAsM(ISimulinkModelElement obj) throws MatlabException {
+ private static void modelHandleAsM(ISimulinkModelElement obj) throws MatlabException {
modelHandleAs(obj, M);
}
- public static void modelHandleAsM(SimulinkModel model) throws MatlabException {
+ private static void modelHandleAsM(SimulinkModel model) throws MatlabException {
modelHandleAs(model, M);
}
- public static void modelHandleAs(ISimulinkModelElement obj, String as) throws MatlabException {
+ private static void modelHandleAs(ISimulinkModelElement obj, String as) throws MatlabException {
modelHandleAs(((SimulinkModel) obj.getOwningModel()), as);
}
- public static void modelHandleAs(SimulinkModel model, String as) throws MatlabException {
+ private static void modelHandleAs(SimulinkModel model, String as) throws MatlabException {
String modelName = model.getSimulinkModelName();
model.getEngine().eval(SF_MODEL, as, modelName);
}
@@ -140,46 +122,14 @@
return new StateflowBlockCollection(ids, model);
}
- public static Object allIds(SimulinkModel model) throws MatlabException {
+ private static Object allIds(SimulinkModel model) throws MatlabException {
StateflowUtil.modelHandleAsM(model);
return model.getEngine().evalWithSetupAndResult(FIND_ALL, GET_IDS, M);
}
- public static Object idsOfType(SimulinkModel model, String type) throws MatlabException {
+ private static Object idsOfType(SimulinkModel model, String type) throws MatlabException {
modelHandleAsM(model);
return model.getEngine().evalWithSetupAndResult(FIND_BLOCK_TYPE, GET_IDS, M, type);
}
- public static Collection<ISimulinkModelElement> getTypeList(SimulinkModel model, MatlabEngine engine, Object ids) {
- return getStateflowBlocks(model, engine, ids).stream().map(e-> (ISimulinkModelElement) e).collect(Collectors.toList());
- }
-
- public static Collection<StateflowBlock> getStateflowBlocks(SimulinkModel model, MatlabEngine engine, Object ids) {
- if (ids == null)
- return Collections.emptyList();
-
- List<StateflowBlock> list = new ArrayList<StateflowBlock>();
- if (ids instanceof List) {
- try {
- for (Double id : (List<Double>) ids) {
- list.add(new StateflowBlock(model, engine, id));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- if (ids instanceof Double) {
- try {
- list.add(new StateflowBlock(model, engine, (Double) ids));
- } catch (MatlabException e1) {
- e1.printStackTrace();
- }
- }
- return list;
- }
-
- public static StateflowBlock cast(Object object){ // TODO to cast response to Simulink or Stateflow Block
- return null;
- }
-
}
diff --git a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/collection/AbstractSimulinkCollection.java b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/collection/AbstractSimulinkCollection.java
index 5808c62..60f1ea9 100644
--- a/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/collection/AbstractSimulinkCollection.java
+++ b/plugins/org.eclipse.epsilon.emc.simulink/src/org/eclipse/epsilon/emc/simulink/util/collection/AbstractSimulinkCollection.java
@@ -156,9 +156,11 @@
AbstractSimulinkCollection collection = (AbstractSimulinkCollection) c;
return getPrimitive().containsAll(collection.getPrimitive());
} else {
- // FIXME handle filter
- return c.parallelStream().filter(e -> isInstanceOf(e)).map(e -> getPrimitive().contains(manager.getId((E) e)))
- .reduce(Boolean::logicalAnd).orElse(false);
+ return c.parallelStream()
+ .filter(e -> isInstanceOf(e))
+ .map(e -> getPrimitive().contains(manager.getId((E) e)))
+ .reduce(Boolean::logicalAnd)
+ .orElse(false);
}
}
@@ -169,9 +171,11 @@
AbstractSimulinkCollection collection = (AbstractSimulinkCollection) c;
return getPrimitive().addAll(collection.getPrimitive());
} else {
- // FIXME handle filter
- return c.parallelStream().filter(e -> isInstanceOf(e)).map(e -> getPrimitive().add(manager.getId((E) e)))
- .reduce(Boolean::logicalAnd).orElse(false);
+ return c.parallelStream()
+ .filter(e -> isInstanceOf(e))
+ .map(e -> getPrimitive().add(manager.getId((E) e)))
+ .reduce(Boolean::logicalAnd)
+ .orElse(false);
}
}