public static ArrayList<ThingMLModel> allThingMLModelModels(ThingMLModel model) { ArrayList<ThingMLModel> result = new ArrayList<ThingMLModel>(); result.add(model); ArrayList<ThingMLModel> temp = new ArrayList<ThingMLModel>(); int prevSize = result.size(); int newSize = prevSize; do { for (ThingMLModel m : result) { for (ThingMLModel m2 : m.getImports()) { if (!temp.contains(m2)) { temp.add(m2); } } } for (ThingMLModel m : temp) { if (!result.contains(m)) { result.add(m); } } prevSize = newSize; newSize = result.size(); } while (newSize > prevSize); return result; }
public static ArrayList<Configuration> allConfigurations(ThingMLModel model) { ArrayList<Configuration> result = new ArrayList<Configuration>(); for (ThingMLModel m : allThingMLModelModels(model)) { for (Configuration c : m.getConfigs()) { if (!result.contains(c)) result.add(c); } } return result; }
public static ArrayList<Thing> allThings(ThingMLModel model) { ArrayList<Thing> result = new ArrayList<Thing>(); for (ThingMLModel m : allThingMLModelModels(model)) { for (Type t : m.getTypes()) { if ((t instanceof Thing) && !result.contains(t)) result.add((Thing) t); } } return result; }
public static ArrayList<Enumeration> allEnnumerations(ThingMLModel model) { ArrayList<Enumeration> result = new ArrayList<Enumeration>(); for (ThingMLModel m : allThingMLModelModels(model)) { for (Type t : m.getTypes()) { if ((t instanceof Enumeration) && !result.contains(t)) result.add((Enumeration) t); } } return result; }
public static ArrayList<Type> allTypes(ThingMLModel model) { ArrayList<Type> result = new ArrayList<Type>(); for (ThingMLModel m : allThingMLModelModels(model)) { for (Type t : m.getTypes()) { if (!result.contains(t)) result.add(t); } } return result; }
public static ArrayList<Type> allSimpleTypes(ThingMLModel model) { ArrayList<Type> result = new ArrayList<Type>(); for (ThingMLModel m : allThingMLModelModels(model)) { for (Type t : m.getTypes()) { if ((t instanceof ObjectType || t instanceof PrimitiveType || t instanceof Enumeration) && !result.contains(t)) result.add(t); } } return result; }