/** * Parse the Result and fill each field. * @see LazyStruct#parse() */ private void parse() { if (getFields() == null) { List<? extends StructField> fieldRefs = ((StructObjectInspector)getInspector()).getAllStructFieldRefs(); LazyObject<? extends ObjectInspector> [] fields = new LazyObject<?>[fieldRefs.size()]; for (int i = 0; i < fields.length; i++) { ColumnMapping colMap = columnsMapping.get(i); if (colMap.qualifierName == null && !colMap.hbaseRowKey) { // a column family fields[i] = new LazyHBaseCellMap( (LazyMapObjectInspector) fieldRefs.get(i).getFieldObjectInspector()); continue; } fields[i] = LazyFactory.createLazyObject( fieldRefs.get(i).getFieldObjectInspector(), colMap.binaryStorage.get(0)); } setFields(fields); setFieldInited(new boolean[fields.length]); } Arrays.fill(getFieldInited(), false); setParsed(true); }