Update of /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager
In directory sc8-pr-cvs1:/tmp/cvs-serv7622/src/java/org/krysalis/workflow/manager
Modified Files:
DefaultWorkFlow.java DefaultWorkFlowManager.java
Log Message:
Fixing some errors.
Index: DefaultWorkFlow.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager/DefaultWorkFlow.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DefaultWorkFlow.java 14 Mar 2003 15:06:08 -0000 1.2
--- DefaultWorkFlow.java 14 Mar 2003 18:58:30 -0000 1.3
***************
*** 46,50 ****
// Intial state
! private int initalState;
/**
--- 46,50 ----
// Intial state
! private int initialState;
/**
***************
*** 81,87 ****
this.stateNames = new String[states.length];
for (int i = 0; i<states.length; i++)
! this.stateNames[i] = states[i].getAttribute("id");
! this.initalState = indexOfState(configuration.getAttribute("inital"));
this.transitions = new int[states.length][];
--- 81,90 ----
this.stateNames = new String[states.length];
for (int i = 0; i<states.length; i++)
! this.stateNames[i] = states[i].getAttribute("name");
! System.out.println("initial="+configuration.getAttribute("inital", states[0].getAttribute("name")));
!
! initialState = indexOfState(configuration.getAttribute("inital", states[0].getAttribute("name")));
! System.out.println("initialState="+initialState);
this.transitions = new int[states.length][];
***************
*** 89,96 ****
--- 92,111 ----
Configuration condition;
+ this.transitions = new int[states.length][];
+ this.transitionEvents = new String[states.length][];
+ this.transitionConditions = new WorkFlowCondition[states.length][];
+ this.transitionConditionParameters = new Parameters[states.length][];
+ this.transitionActions = new WorkFlowAction[states.length][][];
+ this.transitionActionParameters = new Parameters[states.length][][];
+
for (int state = 0; state<states.length; state++)
{
transitions = states[state].getChildren("transition");
this.transitions[state] = new int[transitions.length];
+ this.transitionEvents[state] = new String[transitions.length];
+ this.transitionConditions[state] = new WorkFlowCondition[transitions.length];
+ this.transitionConditionParameters[state] = new Parameters[transitions.length];
+ this.transitionActions[state] = new WorkFlowAction[transitions.length][];
+ this.transitionActionParameters[state] = new Parameters[transitions.length][];
for (int transition = 0; transition<transitions.length; transition++)
{
***************
*** 98,109 ****
stateNames[state]));
! if (transitions[transition].getAttribute("event")!=null)
this.transitionEvents[state][transition] = transitions[transition].getAttribute("event");
! else
! throw new ConfigurationException("Transition of state '"+
! this.stateNames[state]+
! "' don't own an event");
! condition = transitions[state].getChild("condition", false);
if (condition!=null)
{
--- 113,122 ----
stateNames[state]));
! if (transitions[transition].getAttribute("event", null)!=null)
this.transitionEvents[state][transition] = transitions[transition].getAttribute("event");
! else
! this.transitionEvents[state][transition] = null;
! condition = transitions[transition].getChild("condition", false);
if (condition!=null)
{
***************
*** 126,130 ****
}
! actions = transitions[state].getChildren("action");
for (int action = 0; action<actions.length; action++)
{
--- 139,145 ----
}
! actions = transitions[transition].getChildren("action");
! this.transitionActions[state][transition] = new WorkFlowAction[actions.length];
! this.transitionActionParameters[state][transition] = new Parameters[actions.length];
for (int action = 0; action<actions.length; action++)
{
***************
*** 145,176 ****
}
- /**
- *
- *
- * @param name
- *
- * @return
- */
private int indexOfState(String name)
{
for (int i = 0; i<stateNames.length; i++)
! if (this.stateNames.equals(name))
return i;
-
return -1;
}
- /**
- *
- *
- * @param state
- * @param event
- *
- * @return
- */
private int indexOfTransition(int state, String event)
{
for (int i = 0; i<this.transitionEvents.length; i++)
! if (this.transitionEvents[state].equals(event))
return i;
--- 160,175 ----
}
private int indexOfState(String name)
{
for (int i = 0; i<stateNames.length; i++)
! if (this.stateNames[i].equals(name))
return i;
return -1;
}
private int indexOfTransition(int state, String event)
{
for (int i = 0; i<this.transitionEvents.length; i++)
! if (this.transitionEvents[state][i].equals(event))
return i;
***************
*** 187,194 ****
{
if (currentState==null)
! {
! // Add the initial state to the state
! currentState = new DefaultWorkFlowState(this.stateNames[this.initalState]);
! }
int state = indexOfState(currentState.getState());
--- 186,195 ----
{
if (currentState==null)
! throw new NullPointerException("State is null");
!
! System.out.println(stateNames.length+" , "+initialState);
!
! if (currentState.getState()==null)
! currentState.setState(stateNames[initialState]);
int state = indexOfState(currentState.getState());
***************
*** 209,215 ****
event, transitionConditionParameters[state][transition]))
{
- state = transitions[state][transition];
- currentState.setState(stateNames[state]);
-
try
{
--- 210,213 ----
***************
*** 226,229 ****
--- 224,230 ----
getLogger().error("Could not perform actions", e);
}
+
+ state = transitions[state][transition];
+ currentState.setState(stateNames[state]);
}
}
***************
*** 256,261 ****
{
changed = false;
! for (transition = 0; transition<transitionConditions.length;
transition++)
if ((transitionEvents[state][transition]==null) &&
transitionConditions[state][transition].evaluate(currentState,
--- 257,266 ----
{
changed = false;
! for (transition = 0; transition<transitionEvents[state].length;
transition++)
+
+ //System.out.println("transition="+transition+" , "+transitionEvents[state].length);
+ //System.out.println(transition<transitionEvents[state].length);
+
if ((transitionEvents[state][transition]==null) &&
transitionConditions[state][transition].evaluate(currentState,
Index: DefaultWorkFlowManager.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-sandbox/workflow/src/java/org/krysalis/workflow/manager/DefaultWorkFlowManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DefaultWorkFlowManager.java 14 Mar 2003 15:06:08 -0000 1.2
--- DefaultWorkFlowManager.java 14 Mar 2003 18:58:30 -0000 1.3
***************
*** 90,96 ****
}
! /** Set up the Component's Context.
*
! * @param context
*/
public void contextualize(final Context context)
--- 90,97 ----
}
! /**
! * Set up the Component's Context.
*
! * @param context Context
*/
public void contextualize(final Context context)
***************
*** 102,106 ****
* Configure the LogKitManager
*
! * @param logkit
*/
public void setLogKitManager(LogKitManager logkit)
--- 103,107 ----
* Configure the LogKitManager
*
! * @param logkit Manager for the logkit
*/
public void setLogKitManager(LogKitManager logkit)
***************
*** 192,203 ****
{
WorkFlowMapper mapper = null;
ComponentSelector workflowselector = null;
WorkFlow workflow = null;
- WorkFlowState state = lookup(resource);
try
{
mapper = (WorkFlowMapper) cm.lookup(WorkFlowMapper.ROLE);
workflowselector = (ComponentSelector) cm.lookup(WorkFlow.ROLE+
"Selector");
--- 193,214 ----
{
WorkFlowMapper mapper = null;
+ ComponentSelector storeselector = null;
+ WorkFlowStore store = null;
+ WorkFlowState state = null;
ComponentSelector workflowselector = null;
WorkFlow workflow = null;
try
{
+ // Retrieve workflow state
mapper = (WorkFlowMapper) cm.lookup(WorkFlowMapper.ROLE);
+ storeselector = (ComponentSelector) cm.lookup(WorkFlowStore.ROLE+
+ "Selector");
+ store = (WorkFlowStore) storeselector.select(mapper.getWorkFlowStore(resource));
+
+ state = store.lookup(resource);
+
+ // Process event
workflowselector = (ComponentSelector) cm.lookup(WorkFlow.ROLE+
"Selector");
***************
*** 214,217 ****
--- 225,235 ----
{
if (state!=null)
+ store.release(state);
+
+ if (store!=null)
+ storeselector.release(store);
+ if (storeselector!=null)
+ cm.release((Component) storeselector);
+ if (state!=null)
release(state);
if (workflow!=null)
***************
*** 237,243 ****
--- 255,264 ----
WorkFlowStore store = null;
WorkFlowState state = null;
+ ComponentSelector workflowselector = null;
+ WorkFlow workflow = null;
try
{
+ // Retrieve workflow state
mapper = (WorkFlowMapper) cm.lookup(WorkFlowMapper.ROLE);
***************
*** 247,250 ****
--- 268,278 ----
state = store.lookup(resource);
+
+ // Test if transition are possible
+ workflowselector = (ComponentSelector) cm.lookup(WorkFlow.ROLE+
+ "Selector");
+ workflow = (WorkFlow) workflowselector.select(mapper.getWorkFlow(resource));
+
+ workflow.process(state, null);
}
catch (Exception e)
***************
*** 259,262 ****
--- 287,294 ----
if (storeselector!=null)
cm.release((Component) storeselector);
+ if (workflow!=null)
+ workflowselector.release(workflow);
+ if (workflowselector!=null)
+ cm.release((Component) workflowselector);
if (mapper!=null)
cm.release(mapper);
-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open!
Get cracking and register here for some mind boggling fun and
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.