1 16 package org.springframework.webflow.engine; 17 18 import java.util.Iterator ; 19 import java.util.LinkedList ; 20 import java.util.List ; 21 22 import org.springframework.core.style.StylerUtils; 23 import org.springframework.webflow.core.collection.CollectionUtils; 24 import org.springframework.webflow.execution.RequestContext; 25 26 35 public class TransitionSet { 36 37 40 private List transitions = new LinkedList (); 41 42 48 public boolean add(Transition transition) { 49 if (contains(transition)) { 50 return false; 51 } 52 return transitions.add(transition); 53 } 54 55 61 public boolean addAll(Transition[] transitions) { 62 return CollectionUtils.addAllNoDuplicates(this.transitions, transitions); 63 } 64 65 70 public boolean contains(Transition transition) { 71 return transitions.contains(transition); 72 } 73 74 80 public boolean remove(Transition transition) { 81 return transitions.remove(transition); 82 } 83 84 88 public int size() { 89 return transitions.size(); 90 } 91 92 96 public Transition[] toArray() { 97 return (Transition[])transitions.toArray(new Transition[transitions.size()]); 98 } 99 100 105 public TransitionCriteria[] getTransitionCriterias() { 106 TransitionCriteria[] criterias = new TransitionCriteria[transitions.size()]; 107 int i = 0; 108 Iterator it = transitions.iterator(); 109 while (it.hasNext()) { 110 criterias[i++] = ((Transition)it.next()).getMatchingCriteria(); 111 } 112 return criterias; 113 } 114 115 121 public Transition getTransition(RequestContext context) { 122 Iterator it = transitions.iterator(); 123 while (it.hasNext()) { 124 Transition transition = (Transition)it.next(); 125 if (transition.matches(context)) { 126 return transition; 127 } 128 } 129 return null; 130 } 131 132 137 public boolean hasMatchingTransition(RequestContext context) { 138 return getTransition(context) != null; 139 } 140 141 public String toString() { 142 return StylerUtils.style(transitions); 143 } 144 } | Popular Tags |