001 package sale; 002 003 import users.User; 004 005 /** 006 * Convenience implementation of a Transition that simply changes to another gate. Additionally, some other 007 * useful Transitions are provided. 008 * 009 * @see Transition 010 * @see Gate 011 * 012 * @author Steffen Zschaler 013 * @version 2.0 17/08/1999 014 * @since v2.0 015 */ 016 public class GateChangeTransition extends Object implements Transition { 017 018 /** 019 * ID for serialization. 020 */ 021 private static final long serialVersionUID = 3065982594077885294L; 022 023 /** 024 * The target gate. 025 * 026 * @serial 027 */ 028 protected Gate m_gTarget; 029 030 /** 031 * Create a new GateChangeTransition. 032 * 033 * @param gTarget the Gate to change to. 034 */ 035 public GateChangeTransition(Gate gTarget) { 036 super(); 037 038 m_gTarget = gTarget; 039 } 040 041 /** 042 * Perform the Transition. I.e. go to the gate indicated on creation. 043 * 044 * @override Never 045 */ 046 public final Gate perform(SaleProcess p, User u) { 047 return m_gTarget; 048 } 049 050 // some convenience constants 051 /** 052 * Transition that will go to the calling process' {@link SaleProcess#getRollbackGate rollback gate}. 053 */ 054 public static final Transition CHANGE_TO_ROLLBACK_GATE = new Transition() { 055 private static final long serialVersionUID = -1803995238343349608L; 056 public Gate perform(SaleProcess p, User u) { 057 return p.getRollbackGate(); 058 } 059 }; 060 061 /** 062 * Transition that will go to the calling process' {@link SaleProcess#getCommitGate commit gate}. 063 */ 064 public static final Transition CHANGE_TO_COMMIT_GATE = new Transition() { 065 private static final long serialVersionUID = -224101824911764518L; 066 public Gate perform(SaleProcess p, User u) { 067 return p.getCommitGate(); 068 } 069 }; 070 071 /** 072 * Transition that will go to the calling process' {@link SaleProcess#getQuitGate quit gate}. 073 */ 074 public static final Transition CHANGE_TO_QUIT_GATE = new Transition() { 075 private static final long serialVersionUID = -8562684960459105414L; 076 public Gate perform(SaleProcess p, User u) { 077 return p.getQuitGate(); 078 } 079 }; 080 081 /** 082 * Transition that will go to the calling process' {@link SaleProcess#getStopGate stop gate}. 083 */ 084 public static final Transition CHANGE_TO_STOP_GATE = new Transition() { 085 private static final long serialVersionUID = -444636924017240666L; 086 public Gate perform(SaleProcess p, User u) { 087 return p.getStopGate(); 088 } 089 }; 090 091 /** 092 * Transition that will go to the calling process' {@link SaleProcess#getLogGate log gate}. 093 */ 094 public static final Transition CHANGE_TO_LOG_GATE = new Transition() { 095 private static final long serialVersionUID = 3313508636205524700L; 096 public Gate perform(SaleProcess p, User u) { 097 return p.getLogGate(); 098 } 099 }; 100 }