code: public static ConcatVectorTable readFromProto(ConcatVectorTableProto.ConcatVectorTable proto) {
          int[] neighborSizes = new int[proto.getDimensionSizeCount()];
          for (int i = 0; i < neighborSizes.length; i++) {
              neighborSizes[i] = proto.getDimensionSize(i);
          }
          ConcatVectorTable factor = new ConcatVectorTable(neighborSizes);
          int i = 0;
          for (int[] assignment : factor) {
              final ConcatVector vector = ConcatVector.readFromProto(proto.getFactorTable(i));
              factor.setAssignmentValue(assignment, () -> vector);
              i++;
          }
          return factor;
      }
docs: Creates a new in-memory feature factor from a proto serialization,
  
  @param proto the proto object to be turned into an in-memory feature factor
  @return an in-memory feature factor, complete with in-memory concat vectors