public void injectPropertiesFor()

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);
	}