final PerformerAssign performerAssign = ClassDataLoader.getInstance(PerformerAssign.class, this.packageUUID, performerAssignInfo); Map<String, String> parameters = performerAssignInfo.getParameters(); if (parameters != null) { Class<?> clazz = null; try { clazz = ClassDataLoader.getClass(this.packageUUID, performerAssignInfo.getClassName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (final Exception e) { throw new BonitaWrapperException( new PerformerAssignInvocationException(performerAssignInfo.toString(), e) );
protected void mapRole(Performer performer) { ClassInfo rolemapperInfo = performer.getRoleMapper(); if (rolemapperInfo != null) { RoleMapper roleMapper = ClassDataLoader.getRoleMapperInstance(packageUUID, rolemapperInfo); try { this.candidates = roleMapper.searchMembers( AccessorUtil.getQueryAPIAccessor(), instanceUUID, performer.getParticipantId()); } catch (Exception e) { throw new BonitaWrapperException( new RoleMapperInvocationException(rolemapperInfo.toString(), e) ); } } }
@SuppressWarnings("unchecked") public static <T> T getInstance(final Class<T> clazz, final PackageDefinitionUUID packageUUID, final ClassInfo classInfo) { Misc.checkArgsNotNull(clazz, classInfo); final Object obj = getInstance(packageUUID, classInfo); final String className = classInfo.getClassName(); if (obj == null) { throw new BonitaRuntimeException("Unable to create an instance of " + className); } if (obj.getClass().isAssignableFrom(clazz)) { throw new BonitaRuntimeException("The given class : " + classInfo + " is not an instance of " + clazz.getName() + ". Obj = " + obj); } return (T)obj; }
private static Object getClassInstance(Class< ? > clazz, ClassInfo classInfo) { Object obj = ReflectUtil.newInstance(clazz); if (obj == null) { throw new BonitaRuntimeException("Problem while creating a new instance of class : " + clazz.getName() + ", returned object is null"); } Map<String, String> parameters = classInfo.getParameters(); if (parameters != null) { for (Map.Entry<String, String> entry : parameters.entrySet()) { String fieldName = entry.getKey(); String fieldvalue = entry.getValue(); Field field = ReflectUtil.getField(clazz, fieldName); ReflectUtil.set(field, obj, fieldvalue); } } return obj; }
protected static Performer getPerformer(ActivityDefinition activity, ProcessFullDefinition processDef, PackageFullDefinition packageDef) { // get the participant definition from the performer ParticipantDefinition participant = findParticipant(packageDef, processDef, activity.getPerformer()); if (participant == null) { throw new DeploymentRuntimeException("Wrong performer: " + activity.getPerformer() + ". No participant is defined within the package with processDefinitionUUID: " + activity.getPerformer()); } ClassInfo roleMapper = null; ClassInfo performerAssign = null; if (participant.getRoleMapper() != null && participant.getRoleMapper().getClassName() != null) { roleMapper = new ClassInfo(participant.getRoleMapper().getClassName(), participant.getRoleMapper().getParameters()); } if (activity.getPerformerAssign() != null && activity.getPerformerAssign().getClassName() != null) { performerAssign = new ClassInfo(activity.getPerformerAssign().getClassName(), activity.getPerformerAssign().getParameters()); } return new Performer(participant.getParticipantId(), participant.getParticipantType(), participant.getUUID(), roleMapper, performerAssign); }
protected void executeRoleMapper(final Performer performer) { final ClassInfo rolemapperInfo = performer.getRoleMapper(); if (rolemapperInfo != null) { final RoleMapper roleMapper = ClassDataLoader.getInstance(RoleMapper.class, this.packageUUID, rolemapperInfo); try { this.candidates = EngineEnvTool.getHookExecutor().executeRoleMapper( roleMapper, this.instanceUUID, performer.getParticipantId()); } catch (final Exception e) { throw new BonitaWrapperException( new RoleMapperInvocationException(rolemapperInfo.toString(), e) ); } } }
protected static Object getInstance(PackageDefinitionUUID packageUUID, ClassInfo classInfo) { String className = classInfo.getClassName(); try { Class< ? > clazz = getClass(packageUUID, className); return getClassInstance(clazz, classInfo); } catch (ClassNotFoundException e) { throw new BonitaRuntimeException("The following class was not found : " + className); } }
new ClassInfo( multiInstantiationDefinition.getClassName(), multiInstantiationDefinition.getParameters())
protected void assign(Performer performer) { ClassInfo performerAssignInfo = performer.getPerformerAssign(); if (performerAssignInfo != null) { PerformerAssign performerAssign = ClassDataLoader.getPerformerAssignInstance(packageUUID, performerAssignInfo); ActivityInstance<ActivityBody> activityInst = EnvTool.getJournalQueriers().getActivityInstance(instanceUUID, activityId, iterationId, activityInstanceId); try { this.userId = performerAssign.selectUser(AccessorUtil.getQueryAPIAccessor(), activityInst, this.candidates); } catch (Exception e) { throw new BonitaWrapperException( new PerformerAssignInvocationException(performerAssignInfo.toString(), e) ); } } }
protected static Object getInstance(final PackageDefinitionUUID packageUUID, final ClassInfo classInfo) { final String className = classInfo.getClassName(); try { final Class< ? > clazz = getClass(packageUUID, className); return getClassInstance(clazz, classInfo); } catch (final ClassNotFoundException e) { throw new BonitaRuntimeException("The following class was not found : " + className); } }
new MultiInstantiatorInvocationException(multiInstantiationClass.toString(), e) );
new MultiInstantiatorInvocationException(this.multiInstantiationClass.toString(), e) );