/** * Generates an OpenEngSBModelWrapper out of a model. This construct is needed so that the sending of * OpenEngSBModels over remote can work properly */ public static OpenEngSBModelWrapper generateWrapperOutOfModel(OpenEngSBModel model) { OpenEngSBModelWrapper wrapper = new OpenEngSBModelWrapper(); Class<?> clazz = ModelUtils.getModelClassOfOpenEngSBModelObject(model.getClass()); wrapper.setEntries(model.getOpenEngSBModelEntries()); wrapper.setModelClass(clazz.getName()); return wrapper; }
/** * Tries to generate a model out of an OpenEngSB model wrapper. Uses the given class loader to load the model class. * Needed by sub models which aren't exported (like in the ITests). */ public static Object generateModelOutOfWrapper(OpenEngSBModelWrapper wrapper, ClassLoader parentClassLoader) { OpenEngSBModelEntry[] entries = wrapper.getEntries().toArray(new OpenEngSBModelEntry[0]); Class<?> clazz; try { clazz = parentClassLoader.loadClass(wrapper.getModelClass()); return ModelUtils.createModelObject(clazz, entries); } catch (ClassNotFoundException ex) { throw new IllegalArgumentException("The class of the model can't be found", ex); } }
LOGGER.debug("successfully generated model"); message.getResult().setArg(modelObject); message.getResult().setClassName(wrapper.getModelClass()); } else if (message.getResult().getArg() != null && List.class.isAssignableFrom(message.getResult().getArg().getClass())) {
LOGGER.debug("successfully generated model"); parameters[i] = model; newClasses.add(wrapper.getModelClass()); } else { if (classes != null && classes.size() >= (i + 1)) {