Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.metacosm.util
Class Property  view Property download Property.java

java.lang.Object
  extended byorg.metacosm.util.Property
All Implemented Interfaces:
java.lang.Cloneable, org.metacosm.framework.persistence.Persistent, java.io.Serializable
Direct Known Subclasses:
DoubleProperty, LongProperty, NonNumericProperty

public abstract class Property
extends java.lang.Object
implements java.lang.Cloneable, org.metacosm.framework.persistence.Persistent

Properties describe a particular aspect of an Entity. A Property is defined by a name and a value, which can be limited to some field. There are two main types of Properties: numeric ones and non-numeric ones.
Note: we haven't found some useful example where a 'null' value could be useful, so 'null' value is tested against.


Field Summary
protected  java.lang.String name
          Non-null name
 
Constructor Summary
Property(java.lang.String name)
           
 
Method Summary
abstract  void applyModifier(AbsoluteModifier modifier)
          Called by an Influence to modify the value absolutely.
abstract  void applyModifier(RelativeModifier modifier)
          Called by an Influence to modify the value relatively.
 java.lang.Object clone()
          This method may be called to create a new copy of the Object.
 java.lang.String getName()
           
abstract  java.lang.Object getValue()
           
abstract  void removeModifier(AbsoluteModifier modifier)
          Called by an Influence to remove an absolute value.
abstract  void removeModifier(RelativeModifier modifier)
          Called by an Influence to remove a relative value.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.metacosm.framework.persistence.Persistent
load, save
 

Field Detail

name

protected java.lang.String name
Non-null name

Constructor Detail

Property

public Property(java.lang.String name)
         throws java.lang.IllegalArgumentException
Method Detail

getName

public final java.lang.String getName()

getValue

public abstract java.lang.Object getValue()

clone

public java.lang.Object clone()
Description copied from class: java.lang.Object
This method may be called to create a new copy of the Object. The typical behavior is as follows:
  • o == o.clone() is false
  • o.getClass() == o.clone().getClass() is true
  • o.equals(o) is true

However, these are not strict requirements, and may be violated if necessary. Of the three requirements, the last is the most commonly violated, particularly if the subclass does not override Object.equals(Object)>Object.equals(Object) 55 .

If the Object you call clone() on does not implement java.lang.Cloneable (which is a placeholder interface), then a CloneNotSupportedException is thrown. Notice that Object does not implement Cloneable; this method exists as a convenience for subclasses that do.

Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.

All array types implement Cloneable, and override this method as follows (it should never fail):

 public Object clone()
 {
   try
     {
       super.clone();
     }
   catch (CloneNotSupportedException e)
     {
       throw new InternalError(e.getMessage());
     }
 }
 


applyModifier

public abstract void applyModifier(AbsoluteModifier modifier)
Called by an Influence to modify the value absolutely.


removeModifier

public abstract void removeModifier(AbsoluteModifier modifier)
Called by an Influence to remove an absolute value.


applyModifier

public abstract void applyModifier(RelativeModifier modifier)
Called by an Influence to modify the value relatively.


removeModifier

public abstract void removeModifier(RelativeModifier modifier)
Called by an Influence to remove a relative value.