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

Quick Search    Search Deep

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

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

public final class NonNumericProperty
extends Property

A Non-numeric Property contains a non-numeric value (ie an non-null object). We couldn't find useful examples for using intersections, unions or exclusions of sets to define the field. So we'll only use one set (or none). The set should contain one or more values (i.e. a field is a non-null and non-empty set of distinct non-null Objects).


Field Summary
private  java.util.List absList
          AbsoluteModifiers list
private  AbsoluteModifier absModifier
          The first max priority AbsoluteModifier
private  Field field
           
private  java.lang.Object initialValue
           
private  java.util.List randomValues
          RandomAbsoluteModifier values list
private  java.lang.Object value
           
 
Fields inherited from class org.metacosm.util.Property
name
 
Constructor Summary
NonNumericProperty(java.lang.String name, java.lang.Object value)
           
NonNumericProperty(java.lang.String name, java.lang.Object value, Field field)
           
 
Method Summary
 void addToField(java.lang.Object value)
           
 void applyModifier(AbsoluteModifier absMod)
          Applies an absolute modifier to the property.
 void applyModifier(RelativeModifier relMod)
          Unsupported method
 java.lang.Object clone()
          This method may be called to create a new copy of the Object.
 java.lang.Object getValue()
           
 void load(java.io.InputStream is)
          Loads from the stream.
 void removeFromField(java.lang.Object value)
           
 void removeModifier(AbsoluteModifier absMod)
          Removes an absolute modifier previously applied to the property.
 void removeModifier(RelativeModifier relMod)
          Unsupported method
 void save(java.io.OutputStream os)
          Saves on the stream.
 void setValue(java.lang.Object value)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 
Methods inherited from class org.metacosm.util.Property
getName
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

value

private java.lang.Object value

initialValue

private java.lang.Object initialValue

absList

private java.util.List absList
AbsoluteModifiers list


randomValues

private java.util.List randomValues
RandomAbsoluteModifier values list


absModifier

private AbsoluteModifier absModifier
The first max priority AbsoluteModifier


field

private Field field
Constructor Detail

NonNumericProperty

public NonNumericProperty(java.lang.String name,
                          java.lang.Object value)
                   throws java.lang.IllegalArgumentException

NonNumericProperty

public NonNumericProperty(java.lang.String name,
                          java.lang.Object value,
                          Field field)
                   throws java.lang.IllegalArgumentException
Method Detail

setValue

public void setValue(java.lang.Object value)
              throws java.lang.IllegalArgumentException

addToField

public void addToField(java.lang.Object value)
                throws java.lang.IllegalArgumentException

removeFromField

public void removeFromField(java.lang.Object value)
                     throws java.lang.IllegalArgumentException

getValue

public java.lang.Object getValue()
Specified by:
getValue in class Property

applyModifier

public void applyModifier(AbsoluteModifier absMod)
                   throws java.lang.IllegalArgumentException
Applies an absolute modifier to the property.

Specified by:
applyModifier in class Property

removeModifier

public void removeModifier(AbsoluteModifier absMod)
Removes an absolute modifier previously applied to the property. Does nothing if the modifier has not been previously applied or is null.

Specified by:
removeModifier in class Property

applyModifier

public void applyModifier(RelativeModifier relMod)
Unsupported method

Specified by:
applyModifier in class Property

removeModifier

public void removeModifier(RelativeModifier relMod)
Unsupported method

Specified by:
removeModifier in class Property

save

public void save(java.io.OutputStream os)
          throws java.io.IOException
Description copied from interface: org.metacosm.framework.persistence.Persistent
Saves on the stream.


load

public void load(java.io.InputStream is)
          throws java.io.IOException
Description copied from interface: org.metacosm.framework.persistence.Persistent
Loads from the stream.


toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


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());
     }
 }
 

Overrides:
clone in class Property