org.jtoolkit.essence.app.pojo
Class DataValue<T extends DataValue>

java.lang.Object
  extended by org.jtoolkit.essence.app.pojo.DataValue<T>
All Implemented Interfaces:
Named, Named.Source<java.lang.Object>
Direct Known Subclasses:
ClusterComponentBuilder.ClusterCollectionData, ClusterEvent, Event.StatusEvent, JvmMetrics

public class DataValue<T extends DataValue>
extends java.lang.Object
implements Named.Source<java.lang.Object>

Root object class for immutable data value classes.

A data value class is any immutable class which can be represented as a series of key value pairs and has a constructor which initialises all field in the order they are defined. A data value object does not need to extend this class instead this class defines a number of useful methods.

Note: data value class can have public fields but they should be final.

Author:
Peter Lawrey

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.jtoolkit.essence.utils.Named
Named.ContextSource<T>, Named.MapSource<T>, Named.Source<T>
 
Field Summary
 
Fields inherited from interface org.jtoolkit.essence.utils.Named.Source
EMPTY_SOURCE
 
Constructor Summary
protected DataValue()
          Cannot create a plan data value object with no values.
 
Method Summary
 java.util.Map<java.lang.String,java.lang.Object> asMap()
           
 boolean equals(java.lang.Object obj)
           
 java.lang.String getName()
           
 java.util.Set<java.lang.String> getNames()
           
 java.lang.Object getValue(java.lang.String name)
           
 int hashCode()
           
<T2 extends DataValue>
T2
project(java.lang.Class<T2> class2, java.lang.Object... keyValues)
           
 T setCopy(java.lang.String field, java.lang.Object value, java.lang.Object... others)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DataValue

protected DataValue()
Cannot create a plan data value object with no values.

Method Detail

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

asMap

@NotNull
public java.util.Map<java.lang.String,java.lang.Object> asMap()

setCopy

public T setCopy(@NotNull
                 java.lang.String field,
                 java.lang.Object value,
                 java.lang.Object... others)

project

public <T2 extends DataValue> T2 project(@NotNull
                                         java.lang.Class<T2> class2,
                                         java.lang.Object... keyValues)

getNames

@NotNull
public java.util.Set<java.lang.String> getNames()
Specified by:
getNames in interface Named.Source<java.lang.Object>
Returns:
names available in this source.

getValue

public java.lang.Object getValue(@NotNull
                                 java.lang.String name)
                          throws java.util.NoSuchElementException
Specified by:
getValue in interface Named.Source<java.lang.Object>
Parameters:
name - of the object.
Returns:
the object in source or null.
Throws:
java.util.NoSuchElementException

getName

@NotNull
public java.lang.String getName()
Specified by:
getName in interface Named
Returns:
A printable name.


Copyright © Peter Lawrey. All Rights Reserved.