Subversion Repositories SmartDukaan

Rev

Rev 4496 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4496 Rev 7410
Line 28... Line 28...
28
  private static final org.apache.thrift.protocol.TField QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("quantity", org.apache.thrift.protocol.TType.I64, (short)3);
28
  private static final org.apache.thrift.protocol.TField QUANTITY_FIELD_DESC = new org.apache.thrift.protocol.TField("quantity", org.apache.thrift.protocol.TType.I64, (short)3);
29
  private static final org.apache.thrift.protocol.TField ORDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("orderId", org.apache.thrift.protocol.TType.I64, (short)4);
29
  private static final org.apache.thrift.protocol.TField ORDER_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("orderId", org.apache.thrift.protocol.TType.I64, (short)4);
30
  private static final org.apache.thrift.protocol.TField WAREHOUSE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("warehouseId", org.apache.thrift.protocol.TType.I64, (short)5);
30
  private static final org.apache.thrift.protocol.TField WAREHOUSE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("warehouseId", org.apache.thrift.protocol.TType.I64, (short)5);
31
  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)6);
31
  private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)6);
32
  private static final org.apache.thrift.protocol.TField SCANNED_AT_FIELD_DESC = new org.apache.thrift.protocol.TField("scannedAt", org.apache.thrift.protocol.TType.I64, (short)7);
32
  private static final org.apache.thrift.protocol.TField SCANNED_AT_FIELD_DESC = new org.apache.thrift.protocol.TField("scannedAt", org.apache.thrift.protocol.TType.I64, (short)7);
-
 
33
  private static final org.apache.thrift.protocol.TField TRANSFER_LOT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("transferLotId", org.apache.thrift.protocol.TType.I64, (short)8);
-
 
34
  private static final org.apache.thrift.protocol.TField REMARKS_FIELD_DESC = new org.apache.thrift.protocol.TField("remarks", org.apache.thrift.protocol.TType.STRING, (short)9);
33
 
35
 
34
  private long id; // required
36
  private long id; // required
35
  private long inventoryItemId; // required
37
  private long inventoryItemId; // required
36
  private long quantity; // required
38
  private long quantity; // required
37
  private long orderId; // required
39
  private long orderId; // required
38
  private long warehouseId; // required
40
  private long warehouseId; // required
39
  private ScanType type; // required
41
  private ScanType type; // required
40
  private long scannedAt; // required
42
  private long scannedAt; // required
-
 
43
  private long transferLotId; // required
-
 
44
  private String remarks; // required
41
 
45
 
42
  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
46
  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
43
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
47
  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
44
    ID((short)1, "id"),
48
    ID((short)1, "id"),
45
    INVENTORY_ITEM_ID((short)2, "inventoryItemId"),
49
    INVENTORY_ITEM_ID((short)2, "inventoryItemId"),
Line 49... Line 53...
49
    /**
53
    /**
50
     * 
54
     * 
51
     * @see ScanType
55
     * @see ScanType
52
     */
56
     */
53
    TYPE((short)6, "type"),
57
    TYPE((short)6, "type"),
54
    SCANNED_AT((short)7, "scannedAt");
58
    SCANNED_AT((short)7, "scannedAt"),
-
 
59
    TRANSFER_LOT_ID((short)8, "transferLotId"),
-
 
60
    REMARKS((short)9, "remarks");
55
 
61
 
56
    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
62
    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
57
 
63
 
58
    static {
64
    static {
59
      for (_Fields field : EnumSet.allOf(_Fields.class)) {
65
      for (_Fields field : EnumSet.allOf(_Fields.class)) {
Line 78... Line 84...
78
          return WAREHOUSE_ID;
84
          return WAREHOUSE_ID;
79
        case 6: // TYPE
85
        case 6: // TYPE
80
          return TYPE;
86
          return TYPE;
81
        case 7: // SCANNED_AT
87
        case 7: // SCANNED_AT
82
          return SCANNED_AT;
88
          return SCANNED_AT;
-
 
89
        case 8: // TRANSFER_LOT_ID
-
 
90
          return TRANSFER_LOT_ID;
-
 
91
        case 9: // REMARKS
-
 
92
          return REMARKS;
83
        default:
93
        default:
84
          return null;
94
          return null;
85
      }
95
      }
86
    }
96
    }
87
 
97
 
Line 124... Line 134...
124
  private static final int __INVENTORYITEMID_ISSET_ID = 1;
134
  private static final int __INVENTORYITEMID_ISSET_ID = 1;
125
  private static final int __QUANTITY_ISSET_ID = 2;
135
  private static final int __QUANTITY_ISSET_ID = 2;
126
  private static final int __ORDERID_ISSET_ID = 3;
136
  private static final int __ORDERID_ISSET_ID = 3;
127
  private static final int __WAREHOUSEID_ISSET_ID = 4;
137
  private static final int __WAREHOUSEID_ISSET_ID = 4;
128
  private static final int __SCANNEDAT_ISSET_ID = 5;
138
  private static final int __SCANNEDAT_ISSET_ID = 5;
-
 
139
  private static final int __TRANSFERLOTID_ISSET_ID = 6;
129
  private BitSet __isset_bit_vector = new BitSet(6);
140
  private BitSet __isset_bit_vector = new BitSet(7);
130
 
141
 
131
  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
142
  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
132
  static {
143
  static {
133
    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
144
    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
134
    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
145
    tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT, 
Line 143... Line 154...
143
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
154
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
144
    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
155
    tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.DEFAULT, 
145
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ScanType.class)));
156
        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ScanType.class)));
146
    tmpMap.put(_Fields.SCANNED_AT, new org.apache.thrift.meta_data.FieldMetaData("scannedAt", org.apache.thrift.TFieldRequirementType.DEFAULT, 
157
    tmpMap.put(_Fields.SCANNED_AT, new org.apache.thrift.meta_data.FieldMetaData("scannedAt", org.apache.thrift.TFieldRequirementType.DEFAULT, 
147
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
158
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-
 
159
    tmpMap.put(_Fields.TRANSFER_LOT_ID, new org.apache.thrift.meta_data.FieldMetaData("transferLotId", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-
 
160
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
-
 
161
    tmpMap.put(_Fields.REMARKS, new org.apache.thrift.meta_data.FieldMetaData("remarks", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-
 
162
        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
148
    metaDataMap = Collections.unmodifiableMap(tmpMap);
163
    metaDataMap = Collections.unmodifiableMap(tmpMap);
149
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Scan.class, metaDataMap);
164
    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Scan.class, metaDataMap);
150
  }
165
  }
151
 
166
 
152
  public Scan() {
167
  public Scan() {
Line 155... Line 170...
155
  public Scan(
170
  public Scan(
156
    long id,
171
    long id,
157
    long inventoryItemId,
172
    long inventoryItemId,
158
    long warehouseId,
173
    long warehouseId,
159
    ScanType type,
174
    ScanType type,
160
    long scannedAt)
175
    long scannedAt,
-
 
176
    long transferLotId,
-
 
177
    String remarks)
161
  {
178
  {
162
    this();
179
    this();
163
    this.id = id;
180
    this.id = id;
164
    setIdIsSet(true);
181
    setIdIsSet(true);
165
    this.inventoryItemId = inventoryItemId;
182
    this.inventoryItemId = inventoryItemId;
Line 167... Line 184...
167
    this.warehouseId = warehouseId;
184
    this.warehouseId = warehouseId;
168
    setWarehouseIdIsSet(true);
185
    setWarehouseIdIsSet(true);
169
    this.type = type;
186
    this.type = type;
170
    this.scannedAt = scannedAt;
187
    this.scannedAt = scannedAt;
171
    setScannedAtIsSet(true);
188
    setScannedAtIsSet(true);
-
 
189
    this.transferLotId = transferLotId;
-
 
190
    setTransferLotIdIsSet(true);
-
 
191
    this.remarks = remarks;
172
  }
192
  }
173
 
193
 
174
  /**
194
  /**
175
   * Performs a deep copy on <i>other</i>.
195
   * Performs a deep copy on <i>other</i>.
176
   */
196
   */
Line 184... Line 204...
184
    this.warehouseId = other.warehouseId;
204
    this.warehouseId = other.warehouseId;
185
    if (other.isSetType()) {
205
    if (other.isSetType()) {
186
      this.type = other.type;
206
      this.type = other.type;
187
    }
207
    }
188
    this.scannedAt = other.scannedAt;
208
    this.scannedAt = other.scannedAt;
-
 
209
    this.transferLotId = other.transferLotId;
-
 
210
    if (other.isSetRemarks()) {
-
 
211
      this.remarks = other.remarks;
-
 
212
    }
189
  }
213
  }
190
 
214
 
191
  public Scan deepCopy() {
215
  public Scan deepCopy() {
192
    return new Scan(this);
216
    return new Scan(this);
193
  }
217
  }
Line 205... Line 229...
205
    setWarehouseIdIsSet(false);
229
    setWarehouseIdIsSet(false);
206
    this.warehouseId = 0;
230
    this.warehouseId = 0;
207
    this.type = null;
231
    this.type = null;
208
    setScannedAtIsSet(false);
232
    setScannedAtIsSet(false);
209
    this.scannedAt = 0;
233
    this.scannedAt = 0;
-
 
234
    setTransferLotIdIsSet(false);
-
 
235
    this.transferLotId = 0;
-
 
236
    this.remarks = null;
210
  }
237
  }
211
 
238
 
212
  public long getId() {
239
  public long getId() {
213
    return this.id;
240
    return this.id;
214
  }
241
  }
Line 370... Line 397...
370
 
397
 
371
  public void setScannedAtIsSet(boolean value) {
398
  public void setScannedAtIsSet(boolean value) {
372
    __isset_bit_vector.set(__SCANNEDAT_ISSET_ID, value);
399
    __isset_bit_vector.set(__SCANNEDAT_ISSET_ID, value);
373
  }
400
  }
374
 
401
 
-
 
402
  public long getTransferLotId() {
-
 
403
    return this.transferLotId;
-
 
404
  }
-
 
405
 
-
 
406
  public void setTransferLotId(long transferLotId) {
-
 
407
    this.transferLotId = transferLotId;
-
 
408
    setTransferLotIdIsSet(true);
-
 
409
  }
-
 
410
 
-
 
411
  public void unsetTransferLotId() {
-
 
412
    __isset_bit_vector.clear(__TRANSFERLOTID_ISSET_ID);
-
 
413
  }
-
 
414
 
-
 
415
  /** Returns true if field transferLotId is set (has been assigned a value) and false otherwise */
-
 
416
  public boolean isSetTransferLotId() {
-
 
417
    return __isset_bit_vector.get(__TRANSFERLOTID_ISSET_ID);
-
 
418
  }
-
 
419
 
-
 
420
  public void setTransferLotIdIsSet(boolean value) {
-
 
421
    __isset_bit_vector.set(__TRANSFERLOTID_ISSET_ID, value);
-
 
422
  }
-
 
423
 
-
 
424
  public String getRemarks() {
-
 
425
    return this.remarks;
-
 
426
  }
-
 
427
 
-
 
428
  public void setRemarks(String remarks) {
-
 
429
    this.remarks = remarks;
-
 
430
  }
-
 
431
 
-
 
432
  public void unsetRemarks() {
-
 
433
    this.remarks = null;
-
 
434
  }
-
 
435
 
-
 
436
  /** Returns true if field remarks is set (has been assigned a value) and false otherwise */
-
 
437
  public boolean isSetRemarks() {
-
 
438
    return this.remarks != null;
-
 
439
  }
-
 
440
 
-
 
441
  public void setRemarksIsSet(boolean value) {
-
 
442
    if (!value) {
-
 
443
      this.remarks = null;
-
 
444
    }
-
 
445
  }
-
 
446
 
375
  public void setFieldValue(_Fields field, Object value) {
447
  public void setFieldValue(_Fields field, Object value) {
376
    switch (field) {
448
    switch (field) {
377
    case ID:
449
    case ID:
378
      if (value == null) {
450
      if (value == null) {
379
        unsetId();
451
        unsetId();
Line 428... Line 500...
428
      } else {
500
      } else {
429
        setScannedAt((Long)value);
501
        setScannedAt((Long)value);
430
      }
502
      }
431
      break;
503
      break;
432
 
504
 
-
 
505
    case TRANSFER_LOT_ID:
-
 
506
      if (value == null) {
-
 
507
        unsetTransferLotId();
-
 
508
      } else {
-
 
509
        setTransferLotId((Long)value);
-
 
510
      }
-
 
511
      break;
-
 
512
 
-
 
513
    case REMARKS:
-
 
514
      if (value == null) {
-
 
515
        unsetRemarks();
-
 
516
      } else {
-
 
517
        setRemarks((String)value);
-
 
518
      }
-
 
519
      break;
-
 
520
 
433
    }
521
    }
434
  }
522
  }
435
 
523
 
436
  public Object getFieldValue(_Fields field) {
524
  public Object getFieldValue(_Fields field) {
437
    switch (field) {
525
    switch (field) {
Line 454... Line 542...
454
      return getType();
542
      return getType();
455
 
543
 
456
    case SCANNED_AT:
544
    case SCANNED_AT:
457
      return Long.valueOf(getScannedAt());
545
      return Long.valueOf(getScannedAt());
458
 
546
 
-
 
547
    case TRANSFER_LOT_ID:
-
 
548
      return Long.valueOf(getTransferLotId());
-
 
549
 
-
 
550
    case REMARKS:
-
 
551
      return getRemarks();
-
 
552
 
459
    }
553
    }
460
    throw new IllegalStateException();
554
    throw new IllegalStateException();
461
  }
555
  }
462
 
556
 
463
  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
557
  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
Line 479... Line 573...
479
      return isSetWarehouseId();
573
      return isSetWarehouseId();
480
    case TYPE:
574
    case TYPE:
481
      return isSetType();
575
      return isSetType();
482
    case SCANNED_AT:
576
    case SCANNED_AT:
483
      return isSetScannedAt();
577
      return isSetScannedAt();
-
 
578
    case TRANSFER_LOT_ID:
-
 
579
      return isSetTransferLotId();
-
 
580
    case REMARKS:
-
 
581
      return isSetRemarks();
484
    }
582
    }
485
    throw new IllegalStateException();
583
    throw new IllegalStateException();
486
  }
584
  }
487
 
585
 
488
  @Override
586
  @Override
Line 559... Line 657...
559
        return false;
657
        return false;
560
      if (this.scannedAt != that.scannedAt)
658
      if (this.scannedAt != that.scannedAt)
561
        return false;
659
        return false;
562
    }
660
    }
563
 
661
 
-
 
662
    boolean this_present_transferLotId = true;
-
 
663
    boolean that_present_transferLotId = true;
-
 
664
    if (this_present_transferLotId || that_present_transferLotId) {
-
 
665
      if (!(this_present_transferLotId && that_present_transferLotId))
-
 
666
        return false;
-
 
667
      if (this.transferLotId != that.transferLotId)
-
 
668
        return false;
-
 
669
    }
-
 
670
 
-
 
671
    boolean this_present_remarks = true && this.isSetRemarks();
-
 
672
    boolean that_present_remarks = true && that.isSetRemarks();
-
 
673
    if (this_present_remarks || that_present_remarks) {
-
 
674
      if (!(this_present_remarks && that_present_remarks))
-
 
675
        return false;
-
 
676
      if (!this.remarks.equals(that.remarks))
-
 
677
        return false;
-
 
678
    }
-
 
679
 
564
    return true;
680
    return true;
565
  }
681
  }
566
 
682
 
567
  @Override
683
  @Override
568
  public int hashCode() {
684
  public int hashCode() {
Line 645... Line 761...
645
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scannedAt, typedOther.scannedAt);
761
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.scannedAt, typedOther.scannedAt);
646
      if (lastComparison != 0) {
762
      if (lastComparison != 0) {
647
        return lastComparison;
763
        return lastComparison;
648
      }
764
      }
649
    }
765
    }
-
 
766
    lastComparison = Boolean.valueOf(isSetTransferLotId()).compareTo(typedOther.isSetTransferLotId());
-
 
767
    if (lastComparison != 0) {
-
 
768
      return lastComparison;
-
 
769
    }
-
 
770
    if (isSetTransferLotId()) {
-
 
771
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.transferLotId, typedOther.transferLotId);
-
 
772
      if (lastComparison != 0) {
-
 
773
        return lastComparison;
-
 
774
      }
-
 
775
    }
-
 
776
    lastComparison = Boolean.valueOf(isSetRemarks()).compareTo(typedOther.isSetRemarks());
-
 
777
    if (lastComparison != 0) {
-
 
778
      return lastComparison;
-
 
779
    }
-
 
780
    if (isSetRemarks()) {
-
 
781
      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.remarks, typedOther.remarks);
-
 
782
      if (lastComparison != 0) {
-
 
783
        return lastComparison;
-
 
784
      }
-
 
785
    }
650
    return 0;
786
    return 0;
651
  }
787
  }
652
 
788
 
653
  public _Fields fieldForId(int fieldId) {
789
  public _Fields fieldForId(int fieldId) {
654
    return _Fields.findByThriftId(fieldId);
790
    return _Fields.findByThriftId(fieldId);
Line 717... Line 853...
717
            setScannedAtIsSet(true);
853
            setScannedAtIsSet(true);
718
          } else { 
854
          } else { 
719
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
855
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
720
          }
856
          }
721
          break;
857
          break;
-
 
858
        case 8: // TRANSFER_LOT_ID
-
 
859
          if (field.type == org.apache.thrift.protocol.TType.I64) {
-
 
860
            this.transferLotId = iprot.readI64();
-
 
861
            setTransferLotIdIsSet(true);
-
 
862
          } else { 
-
 
863
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-
 
864
          }
-
 
865
          break;
-
 
866
        case 9: // REMARKS
-
 
867
          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-
 
868
            this.remarks = iprot.readString();
-
 
869
          } else { 
-
 
870
            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-
 
871
          }
-
 
872
          break;
722
        default:
873
        default:
723
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
874
          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
724
      }
875
      }
725
      iprot.readFieldEnd();
876
      iprot.readFieldEnd();
726
    }
877
    }
Line 757... Line 908...
757
      oprot.writeFieldEnd();
908
      oprot.writeFieldEnd();
758
    }
909
    }
759
    oprot.writeFieldBegin(SCANNED_AT_FIELD_DESC);
910
    oprot.writeFieldBegin(SCANNED_AT_FIELD_DESC);
760
    oprot.writeI64(this.scannedAt);
911
    oprot.writeI64(this.scannedAt);
761
    oprot.writeFieldEnd();
912
    oprot.writeFieldEnd();
-
 
913
    oprot.writeFieldBegin(TRANSFER_LOT_ID_FIELD_DESC);
-
 
914
    oprot.writeI64(this.transferLotId);
-
 
915
    oprot.writeFieldEnd();
-
 
916
    if (this.remarks != null) {
-
 
917
      oprot.writeFieldBegin(REMARKS_FIELD_DESC);
-
 
918
      oprot.writeString(this.remarks);
-
 
919
      oprot.writeFieldEnd();
-
 
920
    }
762
    oprot.writeFieldStop();
921
    oprot.writeFieldStop();
763
    oprot.writeStructEnd();
922
    oprot.writeStructEnd();
764
  }
923
  }
765
 
924
 
766
  @Override
925
  @Override
Line 801... Line 960...
801
    first = false;
960
    first = false;
802
    if (!first) sb.append(", ");
961
    if (!first) sb.append(", ");
803
    sb.append("scannedAt:");
962
    sb.append("scannedAt:");
804
    sb.append(this.scannedAt);
963
    sb.append(this.scannedAt);
805
    first = false;
964
    first = false;
-
 
965
    if (!first) sb.append(", ");
-
 
966
    sb.append("transferLotId:");
-
 
967
    sb.append(this.transferLotId);
-
 
968
    first = false;
-
 
969
    if (!first) sb.append(", ");
-
 
970
    sb.append("remarks:");
-
 
971
    if (this.remarks == null) {
-
 
972
      sb.append("null");
-
 
973
    } else {
-
 
974
      sb.append(this.remarks);
-
 
975
    }
-
 
976
    first = false;
806
    sb.append(")");
977
    sb.append(")");
807
    return sb.toString();
978
    return sb.toString();
808
  }
979
  }
809
 
980
 
810
  public void validate() throws org.apache.thrift.TException {
981
  public void validate() throws org.apache.thrift.TException {