tl.lin.data.map
Class HMapIDW

java.lang.Object
  extended by tl.lin.data.map.HMapID
      extended by tl.lin.data.map.HMapIDW
All Implemented Interfaces:
Serializable, Cloneable, org.apache.hadoop.io.Writable, MapID

public class HMapIDW
extends HMapID
implements org.apache.hadoop.io.Writable

Writable representing a map where keys are ints and values are doubles.

One notable feature of this class is the ability to support lazy decoding, controlled by the setLazyDecodeFlag(boolean) method. In lazy decoding mode, when an object of this type is deserialized, key-value pairs are not inserted into the map, but rather held in arrays. The reduces memory used in cases where random access to values is not required. In lazy decoding mode, the raw keys and values may be fetched by the getKeys() and getValues() methods, respectively. The map can be subsequently populated with the decode() method.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface tl.lin.data.map.MapID
DEFAULT_VALUE
 
Constructor Summary
HMapIDW()
          Creates a HMapIDW object.
 
Method Summary
static HMapIDW create(byte[] bytes)
          Creates a HMapIDW object from a byte array.
static HMapIDW create(DataInput in)
          Creates a HMapIDW object from a DataInput.
 void decode()
          In lazy decoding mode, populates the map with deserialized data.
 int[] getKeys()
          In lazy decoding mode, returns an array of all the keys if the map hasn't been decoded yet.
static boolean getLazyDecodeFlag()
          Returns the value of the lazy decoding flag
 double[] getValues()
          In lazy decoding mode, returns an array of all the values if the map hasn't been decoded yet.
 boolean isDecoded()
          Returns whether or not this map has been decoded.
 void plus(HMapIDW m)
          Adds values from keys of another map to this map.
 void readFields(DataInput in)
          Deserializes the map.
 byte[] serialize()
          Returns the serialized representation of this object as a byte array.
static void setLazyDecodeFlag(boolean b)
          Sets the lazy decoding flag.
 int size()
          Returns the number of key-value mappings in this map.
 void write(DataOutput out)
          Serializes the map.
 
Methods inherited from class tl.lin.data.map.HMapID
clear, clone, containsKey, containsValue, dot, entrySet, get, getEntriesSortedByValue, getEntriesSortedByValue, increment, isEmpty, keySet, length, normalize, plus, put, putAll, remove, toString, values
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface tl.lin.data.map.MapID
equals, hashCode
 

Constructor Detail

HMapIDW

public HMapIDW()
Creates a HMapIDW object.

Method Detail

readFields

public void readFields(DataInput in)
                throws IOException
Deserializes the map.

Specified by:
readFields in interface org.apache.hadoop.io.Writable
Parameters:
in - source for raw byte representation
Throws:
IOException

decode

public void decode()
In lazy decoding mode, populates the map with deserialized data. Otherwise, does nothing.

Throws:
IOException

isDecoded

public boolean isDecoded()
Returns whether or not this map has been decoded. If not in lazy decoding mode, this method always return true.


write

public void write(DataOutput out)
           throws IOException
Serializes the map.

Specified by:
write in interface org.apache.hadoop.io.Writable
Parameters:
out - where to write the raw byte representation
Throws:
IOException

serialize

public byte[] serialize()
                 throws IOException
Returns the serialized representation of this object as a byte array.

Returns:
byte array representing the serialized representation of this object
Throws:
IOException

create

public static HMapIDW create(DataInput in)
                      throws IOException
Creates a HMapIDW object from a DataInput.

Parameters:
in - source for reading the serialized representation
Returns:
a newly-created HMapIDW object
Throws:
IOException

create

public static HMapIDW create(byte[] bytes)
                      throws IOException
Creates a HMapIDW object from a byte array.

Parameters:
bytes - raw serialized representation
Returns:
a newly-created HMapIDW object
Throws:
IOException

setLazyDecodeFlag

public static void setLazyDecodeFlag(boolean b)
Sets the lazy decoding flag.


getLazyDecodeFlag

public static boolean getLazyDecodeFlag()
Returns the value of the lazy decoding flag


getKeys

public int[] getKeys()
In lazy decoding mode, returns an array of all the keys if the map hasn't been decoded yet. Otherwise, returns null.

Returns:
an array of all the keys

getValues

public double[] getValues()
In lazy decoding mode, returns an array of all the values if the map hasn't been decoded yet. Otherwise, returns null.

Returns:
an array of all the values

plus

public void plus(HMapIDW m)
Adds values from keys of another map to this map. This map will be decoded if it hasn't already been decode. The other map need not be decoded.

Parameters:
m - the other map

size

public int size()
Description copied from interface: MapID
Returns the number of key-value mappings in this map.

Specified by:
size in interface MapID
Overrides:
size in class HMapID
Returns:
the number of key-value mappings in this map


Copyright © 2013. All Rights Reserved.