Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2006-2007 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.springframework.batch.repeat.policy;
 
 import java.util.List;
 
Composite policy that loops through a list of delegate policies and answers calls by a concensus.

Author(s):
Dave Syer
 
 public class CompositeCompletionPolicy implements CompletionPolicy {
 
Setter for the policies.

Parameters:
policies
 
 	public void setPolicies(CompletionPolicy[] policies) {
 		this. = Arrays.asList(policies).toArray(new CompletionPolicy[policies.length]);
 	}

 
 	public boolean isComplete(RepeatContext contextRepeatStatus result) {
 		RepeatContext[] contexts = ((CompositeBatchContextcontext).;
 		CompletionPolicy[] policies = ((CompositeBatchContextcontext).;
 		for (int i = 0; i < policies.lengthi++) {
 			if (policies[i].isComplete(contexts[i], result)) {
 				return true;
 			}
 		}
 		return false;
 	}

This policy is complete if any of the composed policies is complete.

 
 	public boolean isComplete(RepeatContext context) {
 		RepeatContext[] contexts = ((CompositeBatchContextcontext).;
 		CompletionPolicy[] policies = ((CompositeBatchContextcontext).;
 		for (int i = 0; i < policies.lengthi++) {
 			if (policies[i].isComplete(contexts[i])) {
 				return true;
 			}
 		}
 		return false;
 	}

Create a new composite context from all the available policies.

 
 	public RepeatContext start(RepeatContext context) {
 		for (int i = 0; i < .i++) {
 			list.add([i].start(context));
 		}
 		return new CompositeBatchContext(contextlist);
 
 	}

Update all the composed contexts, and also increment the parent context.

 
	public void update(RepeatContext context) {
		RepeatContext[] contexts = ((CompositeBatchContextcontext).;
		CompletionPolicy[] policies = ((CompositeBatchContextcontext).;
		for (int i = 0; i < policies.lengthi++) {
			policies[i].update(contexts[i]);
		}
	}

Composite context that knows about the policies and contexts is was created with.

Author(s):
Dave Syer
	protected class CompositeBatchContext extends RepeatContextSupport {
		// Save a reference to the policies when we were created - gives some
		// protection against reference changes (e.g. if the number of policies
		// change).
		public CompositeBatchContext(RepeatContext contextList<RepeatContextcontexts) {
			super(context);
			this. = contexts.toArray(new RepeatContext[contexts.size()]);
		}
	}
New to GrepCode? Check out our FAQ X