org.ujoframework.implementation.map
Class MapUjoExt<UJO extends MapUjoExt>

java.lang.Object
  extended by org.ujoframework.extensions.AbstractUjo
      extended by org.ujoframework.extensions.AbstractUjoExt<UJO>
          extended by org.ujoframework.implementation.map.MapUjoExt<UJO>
All Implemented Interfaces:
java.io.Serializable, UjoCloneable, UjoExt<UJO>, UjoMiddle<UJO>, UjoTextable, Ujo
Direct Known Subclasses:
RegistrarUjoExt, UjoPropertyRow

public abstract class MapUjoExt<UJO extends MapUjoExt>
extends AbstractUjoExt<UJO>
implements java.io.Serializable

This is an Groovy style implementation of a setter and getter methods for an easier access for developpers, however the methods have got an weaker type control in compare to the MapUjo implementation.
Sample of usage:

public class Person extends MapUjoExt<Person> {

  public static final UjoProperty<Person, String> NAME  = newProperty("Name" , String.class);
  public static final UjoProperty<Person, Double> CASH  = newProperty("Cash" , Double.class);
  public static final UjoProperty<Person, Person> CHILD = newProperty("Child", Person.class);
    
  public void init() {
    set(NAME, "George");
    set(CHILD, new Person());
    set(CHILD, NAME, "Jane");
    set(CHILD, CASH, 200d);
        
    String name = get(CHILD, NAME);
    double cash = get(CHILD, CASH);
  }
}

Since:
UJO release 0.80
Author:
Pavel Ponec
See Also:
Property, Serialized Form

Field Summary
protected  java.util.HashMap<UjoProperty,java.lang.Object> data
          Object data
 
Constructor Summary
  MapUjoExt()
          Constructor
protected MapUjoExt(java.util.HashMap<UjoProperty,java.lang.Object> aData)
          Constructor
 
Method Summary
protected static
<UJO extends MapUjoExt,ITEM>
ListProperty<UJO,ITEM>
newListProperty(java.lang.String name, java.lang.Class<ITEM> type)
          A ListProperty Factory Method assigns a next property index.
static
<UJO extends MapUjoExt,VALUE>
Property<UJO,VALUE>
newProperty(java.lang.String name, java.lang.Class<VALUE> type)
          Returns a new instance of property where the default value is null.
protected static
<UJO extends MapUjoExt,VALUE>
Property<UJO,VALUE>
newProperty(java.lang.String name, VALUE value)
          A Property Factory Method assigns a next property index.
protected static
<UJO extends MapUjo,ITEM>
ListProperty<UJO,ITEM>
newPropertyList(java.lang.String name, java.lang.Class<ITEM> type)
          Deprecated. Use newListProperty(...) instead of.
 java.lang.Object readValue(UjoProperty property)
          It is a common method for reading all object values, however there is strongly recomended to use a method Property.getValue(org.ujoframework.Ujo) to an external access for a better type safe.
 void writeValue(UjoProperty property, java.lang.Object value)
          It is a common method for writing all object values, however there is strongly recomended to use a method Property.setValue(org.ujoframework.Ujo, java.lang.Object) to an external access for a better type safe.
 
Methods inherited from class org.ujoframework.extensions.AbstractUjoExt
add, clone, copyTo, copyTo, createPropertyList, equals, findProperty, get, get, get, get, getItemCount, getText, isDefault, list, remove, remove, set, set, set, set, setText
 
Methods inherited from class org.ujoframework.extensions.AbstractUjo
equals, init, init, readAuthorization, readProperties, readUjoManager, readValueString, toString, writeValueString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ujoframework.Ujo
readAuthorization, readProperties
 

Field Detail

data

protected final java.util.HashMap<UjoProperty,java.lang.Object> data
Object data

Constructor Detail

MapUjoExt

public MapUjoExt()
Constructor


MapUjoExt

protected MapUjoExt(java.util.HashMap<UjoProperty,java.lang.Object> aData)
Constructor

Method Detail

writeValue

public void writeValue(UjoProperty property,
                       java.lang.Object value)
It is a common method for writing all object values, however there is strongly recomended to use a method Property.setValue(org.ujoframework.Ujo, java.lang.Object) to an external access for a better type safe. The method have got a strategy place for an implementation of several listeners and validators.
NOTE: If property is an incorrect then no exception is throwed.

Specified by:
writeValue in interface Ujo
Parameters:
property - Property must be a direct type only!
See Also:
Property.setValue(Ujo,Object)

readValue

public java.lang.Object readValue(UjoProperty property)
It is a common method for reading all object values, however there is strongly recomended to use a method Property.getValue(org.ujoframework.Ujo) to an external access for a better type safe. The method have got a strategy place for an implementation of several listeners and convertors.
NOTE: If property is an incorrect then method returns a null value.

Specified by:
readValue in interface Ujo
Parameters:
property - Property must be a direct type only!
Returns:
Property value
See Also:
Property.getValue(Ujo)

newProperty

public static <UJO extends MapUjoExt,VALUE> Property<UJO,VALUE> newProperty(java.lang.String name,
                                                                            java.lang.Class<VALUE> type)
Returns a new instance of property where the default value is null. Method assigns a next property index.


newProperty

protected static <UJO extends MapUjoExt,VALUE> Property<UJO,VALUE> newProperty(java.lang.String name,
                                                                               VALUE value)
A Property Factory Method assigns a next property index.


newListProperty

protected static <UJO extends MapUjoExt,ITEM> ListProperty<UJO,ITEM> newListProperty(java.lang.String name,
                                                                                     java.lang.Class<ITEM> type)
A ListProperty Factory Method assigns a next property index.


newPropertyList

protected static final <UJO extends MapUjo,ITEM> ListProperty<UJO,ITEM> newPropertyList(java.lang.String name,
                                                                                        java.lang.Class<ITEM> type)
Deprecated. Use newListProperty(...) instead of.

A ListProperty Factory Method assigns a next property index.



Copyright © 2010. All Rights Reserved.