private void bind()

in parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderBase.java [222:438]


  private void bind(PrimitiveTypeName type) {
    binding = type.convert(new PrimitiveTypeNameConverter<Binding, RuntimeException>() {
      @Override
      public Binding convertFLOAT(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          float current;

          @Override
          void read() {
            current = dataColumn.readFloat();
          }

          @Override
          public void skip() {
            current = 0;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = 0;
            dataColumn.skip(n);
          }

          @Override
          public float getFloat() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addFloat(current);
          }
        };
      }

      @Override
      public Binding convertDOUBLE(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          double current;

          @Override
          void read() {
            current = dataColumn.readDouble();
          }

          @Override
          public void skip() {
            current = 0;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = 0;
            dataColumn.skip(n);
          }

          @Override
          public double getDouble() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addDouble(current);
          }
        };
      }

      @Override
      public Binding convertINT32(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          int current;

          @Override
          void read() {
            current = dataColumn.readInteger();
          }

          @Override
          public void skip() {
            current = 0;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = 0;
            dataColumn.skip(n);
          }

          @Override
          public int getInteger() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addInt(current);
          }
        };
      }

      @Override
      public Binding convertINT64(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          long current;

          @Override
          void read() {
            current = dataColumn.readLong();
          }

          @Override
          public void skip() {
            current = 0;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = 0;
            dataColumn.skip(n);
          }

          @Override
          public long getLong() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addLong(current);
          }
        };
      }

      @Override
      public Binding convertINT96(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return this.convertBINARY(primitiveTypeName);
      }

      @Override
      public Binding convertFIXED_LEN_BYTE_ARRAY(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return this.convertBINARY(primitiveTypeName);
      }

      @Override
      public Binding convertBOOLEAN(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          boolean current;

          @Override
          void read() {
            current = dataColumn.readBoolean();
          }

          @Override
          public void skip() {
            current = false;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = false;
            dataColumn.skip(n);
          }

          @Override
          public boolean getBoolean() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addBoolean(current);
          }
        };
      }

      @Override
      public Binding convertBINARY(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
        return new Binding() {
          Binary current;

          @Override
          void read() {
            current = dataColumn.readBytes();
          }

          @Override
          public void skip() {
            current = null;
            dataColumn.skip();
          }

          @Override
          void skip(int n) {
            current = null;
            dataColumn.skip(n);
          }

          @Override
          public Binary getBinary() {
            return current;
          }

          @Override
          void writeValue() {
            converter.addBinary(current);
          }
        };
      }
    });
  }