in taverna-workflowmodel-extensions/src/main/java/org/apache/taverna/workflowmodel/processor/dispatch/layers/Parallelize.java [231:300]
public void injectPropertiesFor(final String owningProcess) {
/**
* Property for the queue depth, will evaluate to -1 if there isn't a
* queue in the state model for this identifier (which will be the case
* if we haven't created the state yet or the queue has been collected)
*/
MonitorableProperty<Integer> queueSizeProperty = new MonitorableProperty<Integer>() {
@Override
public Date getLastModified() {
return new Date();
}
@Override
public String[] getName() {
return new String[] { "dispatch", "parallelize", "queuesize" };
}
@Override
public Integer getValue() throws NoSuchPropertyException {
StateModel model;
synchronized(stateMap) {
model = stateMap.get(owningProcess);
}
if (model == null)
return -1;
return model.queueSize();
}
};
dispatchStack.receiveMonitorableProperty(queueSizeProperty,
owningProcess);
MonitorableProperty<Integer> sentJobsProperty = new MonitorableProperty<Integer>() {
@Override
public Date getLastModified() {
return new Date();
}
@Override
public String[] getName() {
return new String[] { "dispatch", "parallelize", "sentjobs" };
}
@Override
public Integer getValue() throws NoSuchPropertyException {
return sentJobsCount;
}
};
dispatchStack.receiveMonitorableProperty(sentJobsProperty,
owningProcess);
MonitorableProperty<Integer> completedJobsProperty = new MonitorableProperty<Integer>() {
@Override
public Date getLastModified() {
return new Date();
}
@Override
public String[] getName() {
return new String[] { "dispatch", "parallelize",
"completedjobs" };
}
@Override
public Integer getValue() throws NoSuchPropertyException {
return completedJobsCount;
}
};
dispatchStack.receiveMonitorableProperty(completedJobsProperty,
owningProcess);
}