コード例 #1
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
  @SuppressWarnings("unchecked")
  private void processNextNode() {
    if (stateStack.isEmpty()) {
      nextEvent = null;
      return;
    }

    currentItr = stateStack.peek();
    if (currentItr.hasNext()) {
      Object o = currentItr.next();
      if (inMap()) {
        Entry<String, HValue> entry = (Entry<String, HValue>) o;
        key = entry.getKey();
        value = entry.getValue();
      } else {
        key = null;
        value = HValue.initFromObject(o);
      }
      nextEvent = Types.getEventTypeForType(value.getType());
      if (!value.getType().isScalar()) {
        stateStack.push(new IteratorWithType(value));
      }
    } else {
      IteratorWithType iter = stateStack.pop();
      key = null;
      value = iter.getValue();
      nextEvent = (iter.getType() == Type.MAP) ? EventType.END_MAP : EventType.END_ARRAY;
      currentItr = stateStack.isEmpty() ? null : stateStack.peek();
    }
  }
コード例 #2
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 IteratorWithType(HValue value) {
   this.value = value;
   this.i =
       (value.getType() == Type.MAP)
           ? ((HDocument) value).iterator()
           : ((HList) value).listIterator();
 }
コード例 #3
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 HDocumentReader(HValue value) {
   stateStack = new ArrayDeque<>();
   this.key = null;
   this.value = value;
   Type type = value.getType();
   nextEvent = Types.getEventTypeForType(type);
   if (!type.isScalar()) {
     stateStack.push(new IteratorWithType(value));
   }
 }
コード例 #4
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public long getTimestampLong() {
   checkEventType(EventType.TIMESTAMP);
   return value.getTimestampAsLong();
 }
コード例 #5
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public ByteBuffer getBinary() {
   checkEventType(EventType.BINARY);
   return value.getBinary();
 }
コード例 #6
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public int getInt() {
   checkEventType(EventType.INT);
   return value.getInt();
 }
コード例 #7
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public OTime getTime() {
   checkEventType(EventType.TIME);
   return value.getTime();
 }
コード例 #8
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public OInterval getInterval() {
   checkEventType(EventType.INTERVAL);
   return value.getInterval();
 }
コード例 #9
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public ODate getDate() {
   checkEventType(EventType.DATE);
   return value.getDate();
 }
コード例 #10
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public int getTimeInt() {
   checkEventType(EventType.TIME);
   return value.getTimeAsInt();
 }
コード例 #11
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public short getShort() {
   checkEventType(EventType.SHORT);
   return value.getShort();
 }
コード例 #12
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public int getDateInt() {
   checkEventType(EventType.DATE);
   return value.getDateAsInt();
 }
コード例 #13
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public String getString() {
   checkEventType(EventType.STRING);
   return value.getString();
 }
コード例 #14
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 Type getType() {
   return value.getType();
 }
コード例 #15
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public boolean getBoolean() {
   checkEventType(EventType.BOOLEAN);
   return value.getBoolean();
 }
コード例 #16
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public BigDecimal getDecimal() {
   checkEventType(EventType.DECIMAL);
   return value.getDecimal();
 }
コード例 #17
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public double getDouble() {
   checkEventType(EventType.DOUBLE);
   return value.getDouble();
 }
コード例 #18
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public float getFloat() {
   checkEventType(EventType.FLOAT);
   return value.getFloat();
 }
コード例 #19
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public long getLong() {
   checkEventType(EventType.LONG);
   return value.getLong();
 }
コード例 #20
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public OTimestamp getTimestamp() {
   checkEventType(EventType.TIMESTAMP);
   return value.getTimestamp();
 }
コード例 #21
0
ファイル: HDocumentReader.java プロジェクト: rayokota/hdocdb
 @Override
 public byte getByte() {
   checkEventType(EventType.BYTE);
   return value.getByte();
 }