org.apache.hadoop.hive.serde2.lazy
Class LazyNonPrimitive<OI extends ObjectInspector>

java.lang.Object
  extended by org.apache.hadoop.hive.serde2.lazy.LazyObjectBase
      extended by org.apache.hadoop.hive.serde2.lazy.LazyObject<OI>
          extended by org.apache.hadoop.hive.serde2.lazy.LazyNonPrimitive<OI>
Direct Known Subclasses:
LazyArray, LazyMap, LazyStruct, LazyUnion

public abstract class LazyNonPrimitive<OI extends ObjectInspector>
extends LazyObject<OI>

LazyPrimitive stores a primitive Object in a LazyObject.


Field Summary
protected  ByteArrayRef bytes
           
protected  int length
           
protected  int start
           
 
Fields inherited from class org.apache.hadoop.hive.serde2.lazy.LazyObject
oi
 
Constructor Summary
protected LazyNonPrimitive(OI oi)
          Create a LazyNonPrimitive object with the specified ObjectInspector.
 
Method Summary
 Object getObject()
          If the LazyObjectBase is a primitive Object, then deserialize it and return the actual primitive Object.
 int hashCode()
           
 void init(ByteArrayRef bytes, int start, int length)
          Set the data for this LazyObjectBase.
 
Methods inherited from class org.apache.hadoop.hive.serde2.lazy.LazyObject
getInspector, setInspector
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bytes

protected ByteArrayRef bytes

start

protected int start

length

protected int length
Constructor Detail

LazyNonPrimitive

protected LazyNonPrimitive(OI oi)
Create a LazyNonPrimitive object with the specified ObjectInspector.

Parameters:
oi - The ObjectInspector would have to have a hierarchy of LazyObjectInspectors with the leaf nodes being WritableObjectInspectors. It's used both for accessing the type hierarchy of the complex object, as well as getting meta information (separator, nullSequence, etc) when parsing the lazy object.
Method Detail

init

public void init(ByteArrayRef bytes,
                 int start,
                 int length)
Description copied from class: LazyObjectBase
Set the data for this LazyObjectBase. We take ByteArrayRef instead of byte[] so that we will be able to drop the reference to byte[] by a single assignment. The ByteArrayRef object can be reused across multiple rows.

Specified by:
init in class LazyObjectBase
Parameters:
bytes - The wrapper of the byte[].
start - The start position inside the bytes.
length - The length of the data, starting from "start"
See Also:
ByteArrayRef

getObject

public Object getObject()
Description copied from class: LazyObjectBase
If the LazyObjectBase is a primitive Object, then deserialize it and return the actual primitive Object. Otherwise (array, map, struct), return this.

Specified by:
getObject in class LazyObjectBase

hashCode

public int hashCode()
Specified by:
hashCode in class LazyObject<OI extends ObjectInspector>


Copyright © 2013 The Apache Software Foundation