/** * Select the active outputSet */ protected OutputSet getActiveOutputSet() { OutputSet outputSet = null; if (outputSets.size() > 0) { if (outputSets.size() > 1) throw new NotImplementedException("JBPM-1635", "IORules and multiple outputSets"); outputSet = new OutputSetImpl(); for (Property prop : outputSets.get(0).getProperties()) { outputSet.addProperty(prop); } } // Create an empty output set if (outputSet == null) outputSet = new OutputSetImpl(); return outputSet; }
@Override protected void create(Process proc) { super.create(proc); // Validate InputSets for (InputSet inSet : inputSets) { int artSize = inSet.getArtifactInputs().size(); int propSize = inSet.getProperties().size(); if (artSize == 0 && propSize == 0) { throw new InvalidProcessException( "For the combination of ArtifactInputs and PropertyInputs, there MUST be at least one item defined for the InputSet"); } } // Validate OutputSets for (OutputSet outSet : outputSets) { int artSize = outSet.getArtifactOutputs().size(); int propSize = outSet.getProperties().size(); if (artSize == 0 && propSize == 0) { throw new InvalidProcessException( "For the combination of ArtifactOutputs and PropertyOututs, there MUST be at least one item defined for the OutputSet"); } } } }
/** * Transfer data from outputSet to Token */ protected void processOutputSet(Token token) { ExecutionContext exContext = token.getExecutionContext(); // Add the outputSet properties to the Token OutputSet outputSet = token.getOutputSet(); for (Property prop : getActiveOutputSet().getProperties()) { Property outProp = outputSet.getProperty(prop.getName()); if (outProp == null) throw new IllegalStateException("Cannot find outputSet property '" + prop.getName() + "' in Activity: " + getName()); String name = outProp.getName(); Object value = outProp.getValue(); exContext.addAttachment(name, value); } }
for (Property prop : outSet.getProperties())