@Override public void setDescription( String description ) { unsupported(InternalTask.class, Void.class); } }
protected <T> T executeCommand( Command cmd ) { if( AcceptedClientCommands.isSendObjectParameterCommandClass(cmd.getClass()) ) { List<Object> extraClassInstanceList = new ArrayList<Object>(); preprocessParameterCommand(cmd, extraClassInstanceList); if( !extraClassInstanceList.isEmpty() ) { Set<Class<?>> extraJaxbClasses = new HashSet<Class<?>>(); for( Object jaxbObject : extraClassInstanceList ) { Class<?> jaxbClass = jaxbObject.getClass(); if( jaxbClass.isLocalClass() || jaxbClass.isAnonymousClass() ) { throw new SerializationException( "Only proper classes are allowed as parameters for the remote API: neither local nor anonymous classes are accepted: " + jaxbClass.getName()); } extraJaxbClasses.add(jaxbClass); } if( config.addJaxbClasses(extraJaxbClasses) ) { for( Class<?> extraClass : extraJaxbClasses ) { logger.debug( "Adding {} to the JAXBContext instance in this client instance.", extraClass.getName() ); } config.initializeJaxbSerializationProvider(); } } } preprocessCommand(cmd); if( config.isRest() ) { return executeRestCommand(cmd); } else { return executeJmsCommand(cmd); } }
String cmdName = command.getClass().getSimpleName(); JaxbCommandsRequest jaxbRequest = prepareCommandRequest( command, config.getUserName(), if( ! emptyDeploymentId(deploymentId) ) { httpRequest.header(JaxbSerializationProvider.EXECUTE_DEPLOYMENT_ID_HEADER, deploymentId); if( responseStatus < 300 ) { String content = httpResponse.body(); cmdResponse = deserializeResponseContent(content, JaxbCommandsResponse.class); if( contentType.equals(MediaType.APPLICATION_XML) ) { String content = httpResponse.body(); Object response = deserializeResponseContent(content, JaxbExceptionResponse.class); if( response instanceof JaxbRestRequestException ) { JaxbRestRequestException exception = (JaxbRestRequestException) response;
int serializationType, // required Long timeoutInMillisecs) { JaxbCommandsRequest req = prepareCommandRequest(command, userName, deploymentId, processInstanceId, rorrelationKeyProperties ); if( emptyDeploymentId(deploymentId) ) { throw new MissingRequiredInfoException( "Deserialization of parameter classes requires a deployment id, which has not been configured.");
void addPossiblyNullObject( Object inputObject, List<Object> objectList ) { internalAddPossiblyNullObject(inputObject, objectList, new IdentityHashMap<Object, Object>()); }
if( !emptyDeploymentId(deploymentId) ) { Map<String, List<String>> headers = new HashMap<String, List<String>>(1); String[] depIdHeader = { deploymentId };
void preprocessParameterCommand( Object cmdObj, List<Object> extraClassInstanceList ) { if( cmdObj instanceof CompleteWorkItemCommand ) { addPossiblyNullObject(((CompleteWorkItemCommand) cmdObj).getResult(), extraClassInstanceList); } else if( cmdObj instanceof SignalEventCommand ) { addPossiblyNullObject(((SignalEventCommand) cmdObj).getEvent(), extraClassInstanceList); } else if( cmdObj instanceof StartCorrelatedProcessCommand ) { StartCorrelatedProcessCommand cmd = (StartCorrelatedProcessCommand) cmdObj; if( cmd.getData() != null ) { addPossiblyNullObject(cmd.getData().getDatas(), extraClassInstanceList); addPossiblyNullObject(cmd.getParameter(), extraClassInstanceList); } else if( cmdObj instanceof StartProcessCommand ) { StartProcessCommand startProcCmd = (StartProcessCommand) cmdObj; if( startProcCmd.getData() != null ) { addPossiblyNullObject(startProcCmd.getData().getDatas(), extraClassInstanceList); addPossiblyNullObject(((StartProcessCommand) cmdObj).getParameter(), extraClassInstanceList); } else if( cmdObj instanceof SetGlobalCommand ) { addPossiblyNullObject(((SetGlobalCommand) cmdObj).getObject(), extraClassInstanceList); } else if( cmdObj instanceof InsertObjectCommand ) { addPossiblyNullObject(((InsertObjectCommand) cmdObj).getObject(), extraClassInstanceList); } else if( cmdObj instanceof UpdateCommand ) { addPossiblyNullObject(((UpdateCommand) cmdObj).getObject(), extraClassInstanceList); } else if( cmdObj instanceof AddTaskCommand ) { addPossiblyNullObject(((AddTaskCommand) cmdObj).getParameter(), extraClassInstanceList); } else if( cmdObj instanceof CompleteTaskCommand ) { addPossiblyNullObject(((CompleteTaskCommand) cmdObj).getData(), extraClassInstanceList); } else if( cmdObj instanceof FailTaskCommand ) { addPossiblyNullObject(((FailTaskCommand) cmdObj).getData(), extraClassInstanceList); } else if( cmdObj instanceof AddContentFromUserCommand ) {
void internalAddPossiblyNullObject( Object inputObject, List<Object> objectList, Map<Object, Object> seenObjectsMap ) { if( inputObject != null ) { if( seenObjectsMap.put(inputObject, PRESENT) != null ) { return; } if( inputObject instanceof List ) { for( Object obj : (List<?>)inputObject ) { internalAddPossiblyNullObject(obj, objectList, seenObjectsMap); } } else if( inputObject instanceof JaxbStringObjectPairArray ) { for( JaxbStringObjectPair stringObjectPair : ((JaxbStringObjectPairArray) inputObject).getItems() ) { if( stringObjectPair != null ) { internalAddPossiblyNullObject(stringObjectPair.getValue(), objectList, seenObjectsMap); } } } else if( inputObject instanceof StringKeyObjectValueMap ) { for( Object obj : ((StringKeyObjectValueMap) inputObject).values() ) { internalAddPossiblyNullObject(obj, objectList, seenObjectsMap); } } else { objectList.add(inputObject); } } }
if( emptyDeploymentId(config.getDeploymentId()) ) { throw new InsufficientInfoToBuildException("A deployment id is required if user-defined class instances are being sent.");
@Override public void setTaskInitiator( User taskInitiator ) { unsupported(InternalPeopleAssignments.class, Void.class); }
@Override public void setTaskStakeholders( List<OrganizationalEntity> taskStakeholders ) { unsupported(InternalPeopleAssignments.class, Void.class); }
@Override public void setBusinessAdministrators( List<OrganizationalEntity> businessAdministrators ) { unsupported(InternalPeopleAssignments.class, Void.class); }
@Override public void setRecipients( List<OrganizationalEntity> recipients ) { unsupported(InternalPeopleAssignments.class, Void.class); } }
@Override public void setArchived( Boolean archived ) { unsupported(InternalTask.class, Void.class); }
@Override public void setDescriptions( List<I18NText> descriptions ) { unsupported(InternalTask.class, Void.class); }
@Override public void setDelegation( Delegation delegation ) { unsupported(InternalTask.class, Void.class); }
@Override public void setTaskData( TaskData taskData ) { unsupported(InternalTask.class, Void.class); }
@Override public void setExcludedOwners( List<OrganizationalEntity> excludedOwners ) { unsupported(InternalPeopleAssignments.class, Void.class); }
@Override public Boolean isArchived() { return unsupported(InternalTask.class, Boolean.class); }
@Override public Deadlines getDeadlines() { return unsupported(InternalTask.class, Deadlines.class); }