
com.power4j.coca.kit.common.lang.DefaultChainExecutor Maven / Gradle / Ivy
/*
* Copyright 2021 ChenJun ([email protected])
*
* 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 com.power4j.coca.kit.common.lang;
import java.util.List;
/**
* @author CJ ([email protected])
* @date 2021/9/13
* @since 1.0
*/
public class DefaultChainExecutor implements Chain {
private final List>> chainWorkerList;
private final int current;
protected DefaultChainExecutor(List>> chainWorkerList, int current) {
this.chainWorkerList = chainWorkerList;
this.current = current;
}
@Override
public void runNext(C context) {
if (current < chainWorkerList.size()) {
ChainWorker> worker = chainWorkerList.get(current);
worker.handle(context, new DefaultChainExecutor<>(chainWorkerList, current + 1));
}
chainOver(context);
}
protected void chainOver(C context) {
// nothing
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy