This project has retired. For details please refer to its
Attic page.
001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.oozie;
019
020 import java.io.DataInput;
021 import java.io.DataOutput;
022 import java.io.IOException;
023 import java.sql.Timestamp;
024 import java.util.Date;
025
026 import javax.persistence.Basic;
027 import javax.persistence.Column;
028 import javax.persistence.Entity;
029 import javax.persistence.Lob;
030 import javax.persistence.NamedQueries;
031 import javax.persistence.NamedQuery;
032
033 import org.apache.hadoop.io.Writable;
034 import org.apache.oozie.client.CoordinatorJob;
035 import org.apache.oozie.client.rest.JsonCoordinatorJob;
036 import org.apache.oozie.util.DateUtils;
037 import org.apache.oozie.util.WritableUtils;
038 import org.apache.openjpa.persistence.jdbc.Index;
039
040 @Entity
041 @NamedQueries( {
042 @NamedQuery(name = "UPDATE_COORD_JOB", query = "update CoordinatorJobBean w set w.appName = :appName, w.appPath = :appPath, w.concurrency = :concurrency, w.conf = :conf, w.externalId = :externalId, w.frequency = :frequency, w.lastActionNumber = :lastActionNumber, w.timeOut = :timeOut, w.timeZone = :timeZone, w.authToken = :authToken, w.createdTimestamp = :createdTime, w.endTimestamp = :endTime, w.execution = :execution, w.jobXml = :jobXml, w.lastActionTimestamp = :lastAction, w.lastModifiedTimestamp = :lastModifiedTime, w.nextMaterializedTimestamp = :nextMaterializedTime, w.origJobXml = :origJobXml, w.slaXml=:slaXml, w.startTimestamp = :startTime, w.status = :status, w.timeUnitStr = :timeUnit where w.id = :id"),
043
044 @NamedQuery(name = "UPDATE_COORD_JOB_STATUS", query = "update CoordinatorJobBean w set w.status = :status, w.lastModifiedTimestamp = :lastModifiedTime where w.id = :id"),
045
046 @NamedQuery(name = "UPDATE_COORD_JOB_PENDING", query = "update CoordinatorJobBean w set w.pending = :pending, w.lastModifiedTimestamp = :lastModifiedTime where w.id = :id"),
047
048 @NamedQuery(name = "DELETE_COORD_JOB", query = "delete from CoordinatorJobBean w where w.id = :id"),
049
050 @NamedQuery(name = "GET_COORD_JOBS", query = "select OBJECT(w) from CoordinatorJobBean w"),
051
052 @NamedQuery(name = "GET_COORD_JOB", query = "select OBJECT(w) from CoordinatorJobBean w where w.id = :id"),
053
054 @NamedQuery(name = "GET_COORD_JOBS_PENDING", query = "select OBJECT(w) from CoordinatorJobBean w where w.pending = 1 order by w.lastModifiedTimestamp"),
055
056 @NamedQuery(name = "GET_COORD_JOBS_COUNT", query = "select count(w) from CoordinatorJobBean w"),
057
058 @NamedQuery(name = "GET_COORD_JOBS_COLUMNS", query = "select w.id, w.appName, w.status, w.user, w.group, w.startTimestamp, w.endTimestamp, w.appPath, w.concurrency, w.frequency, w.lastActionTimestamp, w.nextMaterializedTimestamp, w.createdTimestamp, w.timeUnitStr, w.timeZone, w.timeOut from CoordinatorJobBean w order by w.createdTimestamp desc"),
059
060 @NamedQuery(name = "GET_COORD_JOBS_OLDER_THAN", query = "select OBJECT(w) from CoordinatorJobBean w where w.startTimestamp <= :matTime AND (w.status = 'PREP' OR w.status = 'RUNNING' or w.status = 'RUNNINGWITHERROR') AND (w.nextMaterializedTimestamp < :matTime OR w.nextMaterializedTimestamp IS NULL) AND (w.nextMaterializedTimestamp IS NULL OR (w.endTimestamp > w.nextMaterializedTimestamp AND (w.pauseTimestamp IS NULL OR w.pauseTimestamp > w.nextMaterializedTimestamp))) order by w.lastModifiedTimestamp"),
061
062 @NamedQuery(name = "GET_COORD_JOBS_OLDER_THAN_STATUS", query = "select OBJECT(w) from CoordinatorJobBean w where w.status = :status AND w.lastModifiedTimestamp <= :lastModTime order by w.lastModifiedTimestamp"),
063
064 @NamedQuery(name = "GET_COMPLETED_COORD_JOBS_OLDER_THAN_STATUS", query = "select OBJECT(w) from CoordinatorJobBean w where ( w.status = 'SUCCEEDED' OR w.status = 'FAILED' or w.status = 'KILLED') AND w.lastModifiedTimestamp <= :lastModTime order by w.lastModifiedTimestamp"),
065
066 @NamedQuery(name = "GET_COORD_JOBS_UNPAUSED", query = "select OBJECT(w) from CoordinatorJobBean w where w.status = 'RUNNING' OR w.status = 'RUNNINGWITHERROR' OR w.status = 'PREP' order by w.lastModifiedTimestamp"),
067
068 @NamedQuery(name = "GET_COORD_JOBS_PAUSED", query = "select OBJECT(w) from CoordinatorJobBean w where w.status = 'PAUSED' OR w.status = 'PAUSEDWITHERROR' OR w.status = 'PREPPAUSED' order by w.lastModifiedTimestamp"),
069
070 @NamedQuery(name = "GET_COORD_JOBS_FOR_BUNDLE", query = "select OBJECT(w) from CoordinatorJobBean w where w.bundleId = :bundleId order by w.lastModifiedTimestamp") })
071 public class CoordinatorJobBean extends JsonCoordinatorJob implements Writable {
072
073 @Basic
074 @Index
075 @Column(name = "status")
076 private String status = CoordinatorJob.Status.PREP.toString();
077
078 @Basic
079 @Column(name = "auth_token")
080 @Lob
081 private String authToken = null;
082
083 @Basic
084 @Column(name = "start_time")
085 private java.sql.Timestamp startTimestamp = null;
086
087 @Basic
088 @Column(name = "end_time")
089 private java.sql.Timestamp endTimestamp = null;
090
091 @Basic
092 @Column(name = "pause_time")
093 private java.sql.Timestamp pauseTimestamp = null;
094
095 @Basic
096 @Index
097 @Column(name = "created_time")
098 private java.sql.Timestamp createdTimestamp = null;
099
100 @Basic
101 @Column(name = "time_unit")
102 private String timeUnitStr = CoordinatorJob.Timeunit.NONE.toString();
103
104 @Basic
105 @Column(name = "execution")
106 private String execution = CoordinatorJob.Execution.FIFO.toString();
107
108 @Basic
109 @Column(name = "last_action")
110 private java.sql.Timestamp lastActionTimestamp = null;
111
112 @Basic
113 @Index
114 @Column(name = "next_matd_time")
115 private java.sql.Timestamp nextMaterializedTimestamp = null;
116
117 @Basic
118 @Index
119 @Column(name = "last_modified_time")
120 private java.sql.Timestamp lastModifiedTimestamp = null;
121
122 @Basic
123 @Index
124 @Column(name = "suspended_time")
125 private java.sql.Timestamp suspendedTimestamp = null;
126
127 @Column(name = "job_xml")
128 @Lob
129 private String jobXml = null;
130
131 @Column(name = "orig_job_xml")
132 @Lob
133 private String origJobXml = null;
134
135 @Column(name = "sla_xml")
136 @Lob
137 private String slaXml = null;
138
139 @Basic
140 @Column(name = "pending")
141 private int pending = 0;
142
143 @Basic
144 @Column(name = "done_materialization")
145 private int doneMaterialization = 0;
146
147 @Basic
148 @Column(name = "app_namespace")
149 private String appNamespace = null;
150
151 /**
152 * Get start timestamp
153 *
154 * @return start timestamp
155 */
156 public java.sql.Timestamp getStartTimestamp() {
157 return startTimestamp;
158 }
159
160 /**
161 * Set start timestamp
162 *
163 * @param startTimestamp start timestamp
164 */
165 public void setStartTimestamp(java.sql.Timestamp startTimestamp) {
166 super.setStartTime(DateUtils.toDate(startTimestamp));
167 this.startTimestamp = startTimestamp;
168 }
169
170 /**
171 * Get end timestamp
172 *
173 * @return end timestamp
174 */
175 public java.sql.Timestamp getEndTimestamp() {
176 return endTimestamp;
177 }
178
179 /**
180 * Set end timestamp
181 *
182 * @param endTimestamp end timestamp
183 */
184 public void setEndTimestamp(java.sql.Timestamp endTimestamp) {
185 super.setEndTime(DateUtils.toDate(endTimestamp));
186 this.endTimestamp = endTimestamp;
187 }
188
189 /**
190 * Get next materialized timestamp
191 *
192 * @return next materialized timestamp
193 */
194 public Timestamp getNextMaterializedTimestamp() {
195 return nextMaterializedTimestamp;
196 }
197
198 /**
199 * Set next materialized timestamp
200 *
201 * @param nextMaterializedTimestamp next materialized timestamp
202 */
203 public void setNextMaterializedTimestamp(java.sql.Timestamp nextMaterializedTimestamp) {
204 super.setNextMaterializedTime(DateUtils.toDate(nextMaterializedTimestamp));
205 this.nextMaterializedTimestamp = nextMaterializedTimestamp;
206 }
207
208 /**
209 * Get last modified timestamp
210 *
211 * @return last modified timestamp
212 */
213 public Timestamp getLastModifiedTimestamp() {
214 return lastModifiedTimestamp;
215 }
216
217 /**
218 * Set last modified timestamp
219 *
220 * @param lastModifiedTimestamp last modified timestamp
221 */
222 public void setLastModifiedTimestamp(java.sql.Timestamp lastModifiedTimestamp) {
223 this.lastModifiedTimestamp = lastModifiedTimestamp;
224 }
225
226 /**
227 * Get suspended timestamp
228 *
229 * @return suspended timestamp
230 */
231 public Timestamp getSuspendedTimestamp() {
232 return suspendedTimestamp;
233 }
234
235 /**
236 * Set suspended timestamp
237 *
238 * @param suspendedTimestamp suspended timestamp
239 */
240 public void setSuspendedTimestamp(java.sql.Timestamp suspendedTimestamp) {
241 this.suspendedTimestamp = suspendedTimestamp;
242 }
243
244 /**
245 * Get job xml
246 *
247 * @return job xml
248 */
249 public String getJobXml() {
250 return jobXml;
251 }
252
253 /**
254 * Set job xml
255 *
256 * @param jobXml job xml
257 */
258 public void setJobXml(String jobXml) {
259 this.jobXml = jobXml;
260 }
261
262 /**
263 * Get original job xml
264 *
265 * @return original job xml
266 */
267 public String getOrigJobXml() {
268 return origJobXml;
269 }
270
271 /**
272 * Set original job xml
273 *
274 * @param origJobXml
275 */
276 public void setOrigJobXml(String origJobXml) {
277 this.origJobXml = origJobXml;
278 }
279
280 /**
281 * Get sla xml
282 *
283 * @return sla xml
284 */
285 public String getSlaXml() {
286 return slaXml;
287 }
288
289 /**
290 * Set sla xml
291 *
292 * @param slaXml sla xml
293 */
294 public void setSlaXml(String slaXml) {
295 this.slaXml = slaXml;
296 }
297
298 /* (non-Javadoc)
299 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setTimeUnit(org.apache.oozie.client.CoordinatorJob.Timeunit)
300 */
301 @Override
302 public void setTimeUnit(Timeunit timeUnit) {
303 super.setTimeUnit(timeUnit);
304 this.timeUnitStr = timeUnit.toString();
305 }
306
307 /**
308 * Set last action timestamp
309 *
310 * @param lastActionTimestamp last action timestamp
311 */
312 public void setLastActionTimestamp(java.sql.Timestamp lastActionTimestamp) {
313 super.setLastActionTime(DateUtils.toDate(lastActionTimestamp));
314 this.lastActionTimestamp = lastActionTimestamp;
315 }
316
317 /**
318 * Set auth token
319 *
320 * @param authToken auth token
321 */
322 public void setAuthToken(String authToken) {
323 this.authToken = authToken;
324 }
325
326 /**
327 * Set pending to true
328 */
329 @Override
330 public void setPending() {
331 super.setPending();
332 this.pending = 1;
333 }
334
335 /**
336 * Set pending to false
337 */
338 @Override
339 public void resetPending() {
340 super.resetPending();
341 this.pending = 0;
342 }
343
344 /**
345 * Return if the action is pending.
346 *
347 * @return if the action is pending.
348 */
349 public boolean isPending() {
350 return pending == 1 ? true : false;
351 }
352
353 /**
354 * Set doneMaterialization to true
355 */
356 public void setDoneMaterialization() {
357 this.doneMaterialization = 1;
358 }
359
360 /**
361 * Set doneMaterialization to false
362 */
363 public void resetDoneMaterialization() {
364 this.doneMaterialization = 0;
365 }
366
367 /**
368 * Return if the action is done with materialization
369 *
370 * @return if the action is done with materialization
371 */
372 public boolean isDoneMaterialization() {
373 return doneMaterialization == 1 ? true : false;
374 }
375
376
377 /**
378 * Get app namespce
379 *
380 * @return app namespce
381 */
382 public String getAppNamespace() {
383 return appNamespace;
384 }
385
386 /**
387 * Set app namespce
388 *
389 * @param appNamespace the app namespce to set
390 */
391 public void setAppNamespace(String appNamespace) {
392 this.appNamespace = appNamespace;
393 }
394
395 public CoordinatorJobBean() {
396 }
397
398 /*
399 * Serialize the coordinator bean to a data output. @param dataOutput data
400 * output. @throws IOException thrown if the coordinator bean could not be
401 * serialized.
402 */
403 public void write(DataOutput dataOutput) throws IOException {
404 WritableUtils.writeStr(dataOutput, getAppPath());
405 WritableUtils.writeStr(dataOutput, getAppName());
406 WritableUtils.writeStr(dataOutput, getId());
407 WritableUtils.writeStr(dataOutput, getConf());
408 WritableUtils.writeStr(dataOutput, getStatusStr());
409 dataOutput.writeInt(getFrequency());
410 WritableUtils.writeStr(dataOutput, getTimeUnit().toString());
411 WritableUtils.writeStr(dataOutput, getTimeZone());
412 dataOutput.writeInt(getConcurrency());
413 WritableUtils.writeStr(dataOutput, getExecutionOrder().toString());
414 dataOutput.writeLong((getLastActionTime() != null) ? getLastActionTime().getTime() : -1);
415 dataOutput.writeLong((getNextMaterializedTime() != null) ? getNextMaterializedTime().getTime() : -1);
416 dataOutput.writeLong((getStartTime() != null) ? getStartTime().getTime() : -1);
417 dataOutput.writeLong((getEndTime() != null) ? getEndTime().getTime() : -1);
418 WritableUtils.writeStr(dataOutput, getUser());
419 WritableUtils.writeStr(dataOutput, getGroup());
420 WritableUtils.writeStr(dataOutput, getExternalId());
421 dataOutput.writeInt(getTimeout());
422 dataOutput.writeInt(getMatThrottling());
423 if (isPending()) {
424 dataOutput.writeInt(1);
425 } else {
426 dataOutput.writeInt(0);
427 }
428 if (isDoneMaterialization()) {
429 dataOutput.writeInt(1);
430 } else {
431 dataOutput.writeInt(0);
432 }
433 WritableUtils.writeStr(dataOutput, getAppNamespace());
434 }
435
436 /**
437 * Deserialize a coordinator bean from a data input.
438 *
439 * @param dataInput data input.
440 * @throws IOException thrown if the workflow bean could not be deserialized.
441 */
442 public void readFields(DataInput dataInput) throws IOException {
443 setAppPath(WritableUtils.readStr(dataInput));
444 setAppName(WritableUtils.readStr(dataInput));
445 setId(WritableUtils.readStr(dataInput));
446 setConf(WritableUtils.readStr(dataInput));
447 setStatus(CoordinatorJob.Status.valueOf(WritableUtils.readStr(dataInput)));
448 setFrequency(dataInput.readInt());
449 setTimeUnit(CoordinatorJob.Timeunit.valueOf(WritableUtils.readStr(dataInput)));
450 setTimeZone(WritableUtils.readStr(dataInput));
451 setConcurrency(dataInput.readInt());
452 setExecutionOrder(Execution.valueOf(WritableUtils.readStr(dataInput)));
453
454 long d = dataInput.readLong();
455 if (d != -1) {
456 setLastActionTime(new Date(d));
457 }
458 d = dataInput.readLong();
459 if (d != -1) {
460 setNextMaterializedTime(new Date(d));
461 }
462 d = dataInput.readLong();
463 if (d != -1) {
464 setStartTime(new Date(d));
465 }
466
467 d = dataInput.readLong();
468 if (d != -1) {
469 setEndTime(new Date(d));
470 }
471 setUser(WritableUtils.readStr(dataInput));
472 setGroup(WritableUtils.readStr(dataInput));
473 setExternalId(WritableUtils.readStr(dataInput));
474 setTimeout(dataInput.readInt());
475 setMatThrottling(dataInput.readInt());
476
477 d = dataInput.readInt();
478 if (d == 1) {
479 setPending();
480 }
481
482 d = dataInput.readInt();
483 if (d == 1) {
484 setDoneMaterialization();
485 }
486
487 setAppNamespace(WritableUtils.readStr(dataInput));
488 }
489
490 /* (non-Javadoc)
491 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getStatus()
492 */
493 @Override
494 public Status getStatus() {
495 return Status.valueOf(this.status);
496 }
497
498 /**
499 * Get status
500 *
501 * @return status
502 */
503 public String getStatusStr() {
504 return status;
505 }
506
507 /* (non-Javadoc)
508 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setStatus(org.apache.oozie.client.Job.Status)
509 */
510 @Override
511 public void setStatus(Status val) {
512 super.setStatus(val);
513 this.status = val.toString();
514 }
515
516 /**
517 * Get time unit
518 *
519 * @return time unit
520 */
521 public String getTimeUnitStr() {
522 return timeUnitStr;
523 }
524
525 /* (non-Javadoc)
526 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getTimeUnit()
527 */
528 @Override
529 public Timeunit getTimeUnit() {
530 return Timeunit.valueOf(this.timeUnitStr);
531 }
532
533 /**
534 * Set order
535 *
536 * @param order
537 */
538 public void setExecution(Execution order) {
539 this.execution = order.toString();
540 super.setExecutionOrder(order);
541 }
542
543 /* (non-Javadoc)
544 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getExecutionOrder()
545 */
546 @Override
547 public Execution getExecutionOrder() {
548 return Execution.valueOf(this.execution);
549 }
550
551 /**
552 * Get execution
553 *
554 * @return execution
555 */
556 public String getExecution() {
557 return execution;
558 }
559
560 /* (non-Javadoc)
561 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setLastActionTime(java.util.Date)
562 */
563 @Override
564 public void setLastActionTime(Date lastAction) {
565 this.lastActionTimestamp = DateUtils.convertDateToTimestamp(lastAction);
566 super.setLastActionTime(lastAction);
567 }
568
569 /* (non-Javadoc)
570 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getLastActionTime()
571 */
572 @Override
573 public Date getLastActionTime() {
574 return DateUtils.toDate(lastActionTimestamp);
575 }
576
577 /**
578 * Get last action timestamp
579 *
580 * @return last action timestamp
581 */
582 public Timestamp getLastActionTimestamp() {
583 return lastActionTimestamp;
584 }
585
586 /* (non-Javadoc)
587 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setNextMaterializedTime(java.util.Date)
588 */
589 @Override
590 public void setNextMaterializedTime(Date nextMaterializedTime) {
591 super.setNextMaterializedTime(nextMaterializedTime);
592 this.nextMaterializedTimestamp = DateUtils.convertDateToTimestamp(nextMaterializedTime);
593 }
594
595 /* (non-Javadoc)
596 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getNextMaterializedTime()
597 */
598 @Override
599 public Date getNextMaterializedTime() {
600 return DateUtils.toDate(nextMaterializedTimestamp);
601 }
602
603 /**
604 * Set last modified time
605 *
606 * @param lastModifiedTime last modified time
607 */
608 public void setLastModifiedTime(Date lastModifiedTime) {
609 this.lastModifiedTimestamp = DateUtils.convertDateToTimestamp(lastModifiedTime);
610 }
611
612 /**
613 * Get last modified time
614 *
615 * @return last modified time
616 */
617 public Date getLastModifiedTime() {
618 return DateUtils.toDate(lastModifiedTimestamp);
619 }
620
621 /**
622 * Set suspended time
623 *
624 * @param suspendedTime suspended time
625 */
626 public void setSuspendedTime(Date suspendedTime) {
627 this.suspendedTimestamp = DateUtils.convertDateToTimestamp(suspendedTime);
628 }
629
630 /**
631 * Get suspended time
632 *
633 * @return suspended time
634 */
635 public Date getSuspendedTime() {
636 return DateUtils.toDate(suspendedTimestamp);
637 }
638
639 /* (non-Javadoc)
640 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setStartTime(java.util.Date)
641 */
642 @Override
643 public void setStartTime(Date startTime) {
644 super.setStartTime(startTime);
645 this.startTimestamp = DateUtils.convertDateToTimestamp(startTime);
646 }
647
648 /* (non-Javadoc)
649 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getStartTime()
650 */
651 @Override
652 public Date getStartTime() {
653 return DateUtils.toDate(startTimestamp);
654 }
655
656 /* (non-Javadoc)
657 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setEndTime(java.util.Date)
658 */
659 @Override
660 public void setEndTime(Date endTime) {
661 super.setEndTime(endTime);
662 this.endTimestamp = DateUtils.convertDateToTimestamp(endTime);
663 }
664
665 /* (non-Javadoc)
666 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#setPauseTime(java.util.Date)
667 */
668 @Override
669 public void setPauseTime(Date pauseTime) {
670 super.setPauseTime(pauseTime);
671 this.pauseTimestamp = DateUtils.convertDateToTimestamp(pauseTime);
672 }
673
674 /* (non-Javadoc)
675 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getEndTime()
676 */
677 @Override
678 public Date getEndTime() {
679 return DateUtils.toDate(endTimestamp);
680 }
681
682 /* (non-Javadoc)
683 * @see org.apache.oozie.client.rest.JsonCoordinatorJob#getPauseTime()
684 */
685 @Override
686 public Date getPauseTime() {
687 return DateUtils.toDate(pauseTimestamp);
688 }
689
690 /**
691 * Set created time
692 *
693 * @param createTime created time
694 */
695 public void setCreatedTime(Date createTime) {
696 this.createdTimestamp = DateUtils.convertDateToTimestamp(createTime);
697 }
698
699 /**
700 * Get created time
701 *
702 * @return created time
703 */
704 public Date getCreatedTime() {
705 return DateUtils.toDate(createdTimestamp);
706 }
707
708 /**
709 * Get created timestamp
710 *
711 * @return created timestamp
712 */
713 public Timestamp getCreatedTimestamp() {
714 return createdTimestamp;
715 }
716
717 /**
718 * Get auth token
719 *
720 * @return auth token
721 */
722 public String getAuthToken() {
723 return this.authToken;
724 }
725
726 }