- DeserializedSubmodelComponentI comp = null;
- if (rectC.equals(params.type))
- {
- comp = createRectComponent(model, params);
- }
-
- if (comp == null)
- {
- comp = createSubmodelComponent(model, params);
- }
- comp.setIdentifierDelegate(() -> params.name);
- initInnerComponents(comp, params.composition);
- return (SubmodelComponent) comp;
- }
-
- // May return null
- @SuppressWarnings("unchecked")
- private static DeserializedSimpleRectangularSubmodelComponent createRectComponent(ViewModelModifiable model,
- SubmodelComponentParams params)
- {
- try
- {
- Map<String, Object> m = params.specialized;
- DeserializedSimpleRectangularSubmodelComponent rect = new DeserializedSimpleRectangularSubmodelComponent(model,
- ((Number) m.get(SimpleRectangularSubmodelComponent.kLogicWidth)).intValue(),
- (String) m.get(SimpleRectangularSubmodelComponent.kLabel));
- rect.setSubmodelScale(params.composition.innerScale);
-
- Object[] names = ((ArrayList<Object>) m.get(SimpleRectangularSubmodelComponent.kInCount)).toArray();
- rect.setInputPins(Arrays.copyOf(names, names.length, String[].class));
-
- names = ((ArrayList<Object>) m.get(SimpleRectangularSubmodelComponent.kOutCount)).toArray();
- rect.setOutputPins(Arrays.copyOf(names, names.length, String[].class));
-
- return rect;
- }
- catch (ClassCastException | NullPointerException e)
- {
- System.err.println("Failed to specialize component!");
- e.printStackTrace();
- return null;
- }