001: package org.enhydra.shark.corba;
002:
003: import javax.transaction.UserTransaction;
004:
005: import org.omg.WfBase.*;
006: import org.omg.WorkflowModel.WfActivity;
007: import org.omg.WorkflowModel._WfActivityIteratorImplBase;
008:
009: /**
010: * Iterator for activities in the process.
011: *
012: * @author Sasa Bojanic
013: * @version 1.0
014: */
015: public class WfActivityIteratorCORBA extends
016: _WfActivityIteratorImplBase {
017:
018: org.enhydra.shark.api.client.wfmodel.WfActivityIterator myIterator;
019:
020: private Collective __collective;
021:
022: protected WfActivityIteratorCORBA(Collective toJoin,
023: org.enhydra.shark.api.client.wfmodel.WfActivityIterator iter)
024: throws BaseException {
025: __collective = toJoin;
026: toJoin.__recruit(this );
027: this .myIterator = iter;
028: }
029:
030: public String query_expression() throws BaseException {
031: UserTransaction ut = null;
032: boolean e = SharkCORBAServer.doesTransactionExist();
033: try {
034: ut = SharkCORBAUtilities.beginTransaction(e);
035: String ret = myIterator.query_expression();
036: SharkCORBAUtilities.commitTransaction(ut, e);
037: return ret;
038: } catch (Exception ex) {
039: SharkCORBAUtilities.rollbackTransaction(ut, e);
040: throw new BaseException();
041: }
042: }
043:
044: /*
045: * The following names may be used: key, name, priority, description, state,
046: * definitionId
047: */
048: public void set_query_expression(String query)
049: throws BaseException, InvalidQuery {
050: UserTransaction ut = null;
051: boolean e = SharkCORBAServer.doesTransactionExist();
052: try {
053: ut = SharkCORBAUtilities.beginTransaction(e);
054: myIterator.set_query_expression(query);
055: SharkCORBAUtilities.commitTransaction(ut, e);
056: } catch (org.enhydra.shark.api.client.wfbase.InvalidQuery iq) {
057: SharkCORBAUtilities.rollbackTransaction(ut, e);
058: throw new InvalidQuery();
059: } catch (Exception ex) {
060: SharkCORBAUtilities.rollbackTransaction(ut, e);
061: throw new BaseException();
062: }
063: }
064:
065: public NameValue[] names_in_expression() throws BaseException {
066: UserTransaction ut = null;
067: boolean e = SharkCORBAServer.doesTransactionExist();
068: try {
069: ut = SharkCORBAUtilities.beginTransaction(e);
070: NameValue[] ret = SharkCORBAUtilities
071: .makeCORBANameValueArray(this ._orb(), myIterator
072: .names_in_expression());
073: SharkCORBAUtilities.commitTransaction(ut, e);
074: return ret;
075: } catch (Exception ex) {
076: SharkCORBAUtilities.rollbackTransaction(ut, e);
077: throw new BaseException();
078: }
079: }
080:
081: public void set_names_in_expression(NameValue[] query)
082: throws BaseException, NameMismatch {
083: UserTransaction ut = null;
084: boolean e = SharkCORBAServer.doesTransactionExist();
085: try {
086: ut = SharkCORBAUtilities.beginTransaction(e);
087: myIterator.set_names_in_expression(SharkCORBAUtilities
088: .makeMap(query));
089: SharkCORBAUtilities.commitTransaction(ut, e);
090: } catch (org.enhydra.shark.api.client.wfbase.NameMismatch nm) {
091: SharkCORBAUtilities.rollbackTransaction(ut, e);
092: throw new NameMismatch();
093: } catch (Exception ex) {
094: SharkCORBAUtilities.rollbackTransaction(ut, e);
095: throw new BaseException();
096: }
097: }
098:
099: public String query_grammar() throws BaseException {
100: UserTransaction ut = null;
101: boolean e = SharkCORBAServer.doesTransactionExist();
102: try {
103: ut = SharkCORBAUtilities.beginTransaction(e);
104: String ret = myIterator.query_grammar();
105: SharkCORBAUtilities.commitTransaction(ut, e);
106: return ret;
107: } catch (Exception ex) {
108: SharkCORBAUtilities.rollbackTransaction(ut, e);
109: throw new BaseException();
110: }
111: }
112:
113: public void set_query_grammar(String query_grammmar)
114: throws BaseException, GrammarNotSupported {
115: UserTransaction ut = null;
116: boolean e = SharkCORBAServer.doesTransactionExist();
117: try {
118: ut = SharkCORBAUtilities.beginTransaction(e);
119: myIterator.set_query_grammar(query_grammmar);
120: SharkCORBAUtilities.commitTransaction(ut, e);
121: } catch (org.enhydra.shark.api.client.wfbase.GrammarNotSupported gns) {
122: SharkCORBAUtilities.rollbackTransaction(ut, e);
123: throw new GrammarNotSupported();
124: } catch (Exception ex) {
125: SharkCORBAUtilities.rollbackTransaction(ut, e);
126: throw new BaseException();
127: }
128: }
129:
130: public int how_many() throws BaseException {
131: UserTransaction ut = null;
132: boolean e = SharkCORBAServer.doesTransactionExist();
133: try {
134: ut = SharkCORBAUtilities.beginTransaction(e);
135: int ret = myIterator.how_many();
136: SharkCORBAUtilities.commitTransaction(ut, e);
137: return ret;
138: } catch (Exception ex) {
139: SharkCORBAUtilities.rollbackTransaction(ut, e);
140: throw new BaseException();
141: }
142: }
143:
144: public void goto_start() throws BaseException {
145: UserTransaction ut = null;
146: boolean e = SharkCORBAServer.doesTransactionExist();
147: try {
148: ut = SharkCORBAUtilities.beginTransaction(e);
149: myIterator.goto_start();
150: SharkCORBAUtilities.commitTransaction(ut, e);
151: } catch (Exception ex) {
152: SharkCORBAUtilities.rollbackTransaction(ut, e);
153: throw new BaseException();
154: }
155: }
156:
157: public void goto_end() throws BaseException {
158: UserTransaction ut = null;
159: boolean e = SharkCORBAServer.doesTransactionExist();
160: try {
161: ut = SharkCORBAUtilities.beginTransaction(e);
162: myIterator.goto_end();
163: SharkCORBAUtilities.commitTransaction(ut, e);
164: } catch (Exception ex) {
165: SharkCORBAUtilities.rollbackTransaction(ut, e);
166: throw new BaseException();
167: }
168: }
169:
170: public WfActivity get_next_object() throws BaseException {
171: UserTransaction ut = null;
172: boolean e = SharkCORBAServer.doesTransactionExist();
173: try {
174: ut = SharkCORBAUtilities.beginTransaction(e);
175: WfActivity ret = new WfActivityCORBA(__collective,
176: myIterator.get_next_object());
177: SharkCORBAUtilities.commitTransaction(ut, e);
178: return ret;
179: } catch (Exception ex) {
180: SharkCORBAUtilities.rollbackTransaction(ut, e);
181: throw new BaseException();
182: }
183: }
184:
185: public WfActivity get_previous_object() throws BaseException {
186: UserTransaction ut = null;
187: boolean e = SharkCORBAServer.doesTransactionExist();
188: try {
189: ut = SharkCORBAUtilities.beginTransaction(e);
190: WfActivity ret = new WfActivityCORBA(__collective,
191: myIterator.get_previous_object());
192: SharkCORBAUtilities.commitTransaction(ut, e);
193: return ret;
194: } catch (Exception ex) {
195: SharkCORBAUtilities.rollbackTransaction(ut, e);
196: throw new BaseException();
197: }
198: }
199:
200: public WfActivity[] get_next_n_sequence(int max_number)
201: throws BaseException {
202: UserTransaction ut = null;
203: boolean e = SharkCORBAServer.doesTransactionExist();
204: try {
205: ut = SharkCORBAUtilities.beginTransaction(e);
206: WfActivity[] ret = SharkCORBAUtilities.makeCORBAActivities(
207: __collective, myIterator
208: .get_next_n_sequence(max_number));
209: SharkCORBAUtilities.commitTransaction(ut, e);
210: return ret;
211: } catch (Exception ex) {
212: SharkCORBAUtilities.rollbackTransaction(ut, e);
213: throw new BaseException();
214: }
215: }
216:
217: public WfActivity[] get_previous_n_sequence(int max_number)
218: throws BaseException {
219: UserTransaction ut = null;
220: boolean e = SharkCORBAServer.doesTransactionExist();
221: try {
222: ut = SharkCORBAUtilities.beginTransaction(e);
223: WfActivity[] ret = SharkCORBAUtilities.makeCORBAActivities(
224: __collective, myIterator
225: .get_previous_n_sequence(max_number));
226: SharkCORBAUtilities.commitTransaction(ut, e);
227: return ret;
228: } catch (Exception ex) {
229: SharkCORBAUtilities.rollbackTransaction(ut, e);
230: throw new BaseException();
231: }
232: }
233:
234: }
|