code: private void readValues()
              throws IOException
      {
          lastReadInputCheckpoint = input.getCheckpoint();
  
          // read the first 2 bits and determine the encoding type
          int firstByte = input.read();
          if (firstByte < 0) {
              throw new OrcCorruptionException(input.getOrcDataSourceId(), "Read past end of RLE integer");
          }
  
          int enc = (firstByte >>> 6) & 0x03;
          if (EncodingType.SHORT_REPEAT.ordinal() == enc) {
              readShortRepeatValues(firstByte);
          }
          else if (EncodingType.DIRECT.ordinal() == enc) {
              readDirectValues(firstByte);
          }
          else if (EncodingType.PATCHED_BASE.ordinal() == enc) {
              readPatchedBaseValues(firstByte);
          }
          else {
              readDeltaValues(firstByte);
          }
      }
docs: This comes from the Apache Hive ORC code