/tags/release-0.0.0-rc0/hive/external/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StructObjectInspector.java
Java | 65 lines | 23 code | 7 blank | 35 comment | 2 complexity | 9e848f312c7ef5f39d0913318baee86a MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, JSON, CPL-1.0
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.hadoop.hive.serde2.objectinspector;
- import java.util.List;
- /**
- * StructObjectInspector.
- *
- */
- public abstract class StructObjectInspector implements ObjectInspector {
- // ** Methods that does not need a data object **
- /**
- * Returns all the fields.
- */
- public abstract List<? extends StructField> getAllStructFieldRefs();
- /**
- * Look up a field.
- */
- public abstract StructField getStructFieldRef(String fieldName);
- // ** Methods that need a data object **
- /**
- * returns null for data = null.
- */
- public abstract Object getStructFieldData(Object data, StructField fieldRef);
- /**
- * returns null for data = null.
- */
- public abstract List<Object> getStructFieldsDataAsList(Object data);
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- List<? extends StructField> fields = getAllStructFieldRefs();
- sb.append(getClass().getName());
- sb.append("<");
- for (int i = 0; i < fields.size(); i++) {
- if (i > 0) {
- sb.append(",");
- }
- sb.append(fields.get(i).getFieldObjectInspector().toString());
- }
- sb.append(">");
- return sb.toString();
- }
- }