public boolean equals(Object obj) { if (obj.hashCode() != hashCode()) return false; if (!(obj instanceof Phase)) return false; Phase p = (Phase) obj; if (p.getName().equals(name) && p.getPriority() == priority) { return true; } return false; }
public HandlerPipeline(List phases) { super(); handlers = new HashMap(); // Order the phases correctly based on priority this.phases = phases; for (Iterator itr = phases.iterator(); itr.hasNext();) { Phase phase = (Phase) itr.next(); handlers.put(phase.getName(), new HandlerOrderer()); } }
public int compareTo(Object obj) { Phase phase = (Phase) obj; int p2 = phase.getPriority(); if (p2 < priority) return 1; if (p2 > priority) return -1; return 0; }
/** * Creates a default list of phases for this XFire instance. */ protected void createPhases() { inPhases = new ArrayList(); inPhases.add(new Phase(Phase.TRANSPORT, 1000)); inPhases.add(new Phase(Phase.PARSE, 2000)); inPhases.add(new Phase(Phase.PRE_DISPATCH, 3000)); inPhases.add(new Phase(Phase.DISPATCH, 4000)); inPhases.add(new Phase(Phase.POLICY, 5000)); inPhases.add(new Phase(Phase.USER, 6000)); inPhases.add(new Phase(Phase.PRE_INVOKE, 7000)); inPhases.add(new Phase(Phase.SERVICE, 8000)); Collections.sort(inPhases); outPhases = new ArrayList(); outPhases.add(new Phase(Phase.POST_INVOKE, 1000)); outPhases.add(new Phase(Phase.POLICY, 2000)); outPhases.add(new Phase(Phase.USER, 3000)); outPhases.add(new Phase(Phase.TRANSPORT, 4000)); outPhases.add(new Phase(Phase.SEND, 5000)); Collections.sort(outPhases); }
/** * Determines whether or not this Pipeline "understands" a particular header. * @param name * @return true if pipeline understands a header */ public boolean understands(QName name) { for (Iterator itr = phases.iterator(); itr.hasNext();) { Phase phase = (Phase) itr.next(); List phaseHandlers = getPhaseHandlers(phase.getName()).getHandlers(); for (int i = 0; i < phaseHandlers.size(); i++ ) { Handler h = (Handler) phaseHandlers.get(i); QName[] understoodQs = h.getUnderstoodHeaders(); if (understoodQs != null) { for (int j = 0; j < understoodQs.length; j++) { if (understoodQs[j].equals(name)) return true; } } } } return false; }