String transId, String fromId, String toId,
String condType, String condExpr, String blkActId) {
// find associated "from"-activities
int order = evalTransitionOrder(transId, fromId, trefsMap);
ActivityLocal fromAct = (ActivityLocal)actIdMap.get(fromId);
BAForProcessInstantiation fromBA = null;
List fromActivities = new ArrayList();
if (fromAct instanceof BlockActivity) {
// we do not generate exception transitions from block
// internals to block externals
if (condExpr != null
&& (condType.equals ("EXCEPTION")
|| condType.equals ("DEFAULTEXCEPTION"))) {
fromActivities.add
(blockActivityRepresentation(fromAct.key()));
} else {
fromBA = (BAForProcessInstantiation)fromAct;
fromActivities.addAll (fromBA.exitActivities());
}
} else {
fromActivities.add (fromAct);
}
ActivityLocal toAct = (ActivityLocal)actIdMap.get(toId);
BAForProcessInstantiation toBA = null;
List toActivities = new ArrayList();
if (toAct instanceof BlockActivity) {
toBA = (BAForProcessInstantiation)toAct;
toActivities.addAll (toBA.entryActivities ());
} else {
toActivities.add (toAct);
}
// create all the possible transitions
for (Iterator fromIt = fromActivities.iterator(); fromIt.hasNext();){
ActivityLocal fa = (ActivityLocal)fromIt.next();
for (Iterator toIt = toActivities.iterator(); toIt.hasNext();){
ActivityLocal ta = (ActivityLocal)toIt.next();
// enhance transition id if block activities are
// involved
String id = transId;
if (blkActId != null) {
id += "/" + blkActId;
}
if (fromBA != null){
id += "/" + fromBA.setId() + "/"
+ fromBA.getMemberId (fa.key());
}
if (toBA != null){
id += "/" + toBA.setId() + "/"
+ toBA.getMemberId (ta.key());
}
// create and register transition(s)
int ct = Transition.COND_TYPE_CONDITION;
if (condExpr != null) {