📄 abstractmodeldigester.java
字号:
/*
* Copyright (c) 2003-2004, Alexander Greif
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the Flow4J-Eclipse project nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.orthanc.flow4j.model;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.orthanc.flow4j.model.bind.BendpointBind;
import net.orthanc.flow4j.model.bind.BooleanTransitionBind;
import net.orthanc.flow4j.model.bind.CallFlowletBind;
import net.orthanc.flow4j.model.bind.DecisionFlowletBind;
import net.orthanc.flow4j.model.bind.EndFlowletBind;
import net.orthanc.flow4j.model.bind.FlowModelBind;
import net.orthanc.flow4j.model.bind.IFlowletBind;
import net.orthanc.flow4j.model.bind.JavaTaskFlowletBind;
import net.orthanc.flow4j.model.bind.JoinFlowletBind;
import net.orthanc.flow4j.model.bind.JumpFlowletBind;
import net.orthanc.flow4j.model.bind.ScriptTaskFlowletBind;
import net.orthanc.flow4j.model.bind.StartFlowletBind;
import net.orthanc.flow4j.model.bind.TemplateFlowletBind;
import net.orthanc.flow4j.model.bind.TransitionBind;
/**
* @author greifa
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public abstract class AbstractModelDigester {
/**
* Map storing the flowlet id as key and the binding object as value
*/
private Map flowletId2BindObjMap = new HashMap();
/**
* Digests all child elements of the root element
* @see net.orthanc.flow4j.model.IModelDigester#digest(net.orthanc.flow4j.model.bind.FlowModelBind)
*/
public void digest(FlowModelBind flowModelBind) {
digestStartFlowlets(flowModelBind);
digestJavaTaskFlowlets(flowModelBind);
digestScriptTaskFlowlets(flowModelBind);
digestDecisionFlowlets(flowModelBind);
digestJoinFlowlets(flowModelBind);
digestCallFlowlets(flowModelBind);
digestJumpFlowlets(flowModelBind);
digestTemplateFlowlets(flowModelBind);
digestEndFlowlets(flowModelBind);
digestTransitions(flowModelBind);
digestBooleanTransitions(flowModelBind);
}
/**
* @param flowModelBind
*/
protected void digestStartFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getStartFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getStartFlowlets().iterator();
iter.hasNext();
) {
StartFlowletBind flowlet = (StartFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestStartFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestStartFlowlet(
StartFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestJavaTaskFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getJavaTaskFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getJavaTaskFlowlets().iterator();
iter.hasNext();
) {
JavaTaskFlowletBind flowlet = (JavaTaskFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestJavaTaskFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestJavaTaskFlowlet(
JavaTaskFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestScriptTaskFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getScriptTaskFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getScriptTaskFlowlets().iterator();
iter.hasNext();
) {
ScriptTaskFlowletBind flowlet = (ScriptTaskFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestScriptTaskFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestScriptTaskFlowlet(
ScriptTaskFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestDecisionFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getDecisionFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getDecisionFlowlets().iterator();
iter.hasNext();
) {
DecisionFlowletBind flowlet = (DecisionFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestDecisionFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestDecisionFlowlet(
DecisionFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestJoinFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getJoinFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getJoinFlowlets().iterator();
iter.hasNext();
) {
JoinFlowletBind flowlet = (JoinFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestJoinFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestJoinFlowlet(
JoinFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestCallFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getCallFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getCallFlowlets().iterator();
iter.hasNext();
) {
CallFlowletBind flowlet = (CallFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestCallFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestCallFlowlet(
CallFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestJumpFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getJumpFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getJumpFlowlets().iterator();
iter.hasNext();
) {
JumpFlowletBind flowlet = (JumpFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestJumpFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestJumpFlowlet(
JumpFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestTemplateFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getTemplateFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getTemplateFlowlets().iterator();
iter.hasNext();
) {
TemplateFlowletBind flowlet = (TemplateFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestTemplateFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestTemplateFlowlet(
TemplateFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestEndFlowlets(FlowModelBind flowModelBind) {
if (flowModelBind.getEndFlowlets() == null)
return;
for (Iterator iter = flowModelBind.getEndFlowlets().iterator();
iter.hasNext();
) {
EndFlowletBind flowlet = (EndFlowletBind) iter.next();
flowletId2BindObjMap.put(flowlet.getId(flowModelBind), flowlet);
digestEndFlowlet(flowlet, flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestEndFlowlet(
EndFlowletBind flowletBind,
FlowModelBind flowModelBind) {
}
/**
* @param flowModelBind
*/
protected void digestTransitions(FlowModelBind flowModelBind) {
if (flowModelBind.getTransitions() == null)
return;
for (Iterator iter = flowModelBind.getTransitions().iterator();
iter.hasNext();
) {
TransitionBind transition = (TransitionBind) iter.next();
IFlowletBind sourceFlowlet =
(IFlowletBind) flowletId2BindObjMap.get(transition.getSourceId());
IFlowletBind targetFlowlet =
(IFlowletBind) flowletId2BindObjMap.get(transition.getTargetId());
digestTransition(
transition,
sourceFlowlet,
targetFlowlet,
flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestTransition(
TransitionBind transitionBind,
IFlowletBind sourceFlowletBind,
IFlowletBind targetFlowletBind,
FlowModelBind flowModelBind) {
// null if the flow file was just created by the wizard
if (transitionBind.getBendpoints() == null)
return;
for (Iterator iter = transitionBind.getBendpoints().iterator();
iter.hasNext();
) {
BendpointBind bendpoint = (BendpointBind) iter.next();
digestBendpoint(
transitionBind,
sourceFlowletBind,
targetFlowletBind,
bendpoint,
flowModelBind);
}
}
/**
* @param flowModelBind
*/
protected void digestBooleanTransitions(FlowModelBind flowModelBind) {
if (flowModelBind.getBooleanTransitions() == null)
return;
for (Iterator iter = flowModelBind.getBooleanTransitions().iterator();
iter.hasNext();
) {
BooleanTransitionBind transition =
(BooleanTransitionBind) iter.next();
IFlowletBind sourceFlowlet =
(IFlowletBind) flowletId2BindObjMap.get(transition.getSourceId());
IFlowletBind targetFlowlet =
(IFlowletBind) flowletId2BindObjMap.get(transition.getTargetId());
digestBooleanTransition(
transition,
sourceFlowlet,
targetFlowlet,
flowModelBind);
}
}
/**
* @param flowletBind
* @param flowModelBind
*/
protected void digestBooleanTransition(
BooleanTransitionBind transitionBind,
IFlowletBind sourceFlowletBind,
IFlowletBind targetFlowletBind,
FlowModelBind flowModelBind) {
// null if the flow file was just created by the wizard
if (transitionBind.getBendpoints() == null)
return;
for (Iterator iter = transitionBind.getBendpoints().iterator();
iter.hasNext();
) {
BendpointBind bendpoint = (BendpointBind) iter.next();
digestBendpoint(
transitionBind,
sourceFlowletBind,
targetFlowletBind,
bendpoint,
flowModelBind);
}
}
protected void digestBendpoint(
TransitionBind transitionBind,
IFlowletBind sourceFlowletBind,
IFlowletBind targetFlowletBind,
BendpointBind bendpointBind,
FlowModelBind flowModelBind) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -