|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
org.vrspace.server.VRObject
Generic VRObject class.
Defines event forwarding, does not check nor set actual field value.
Subclasses should override setValue() method to implement different
behavior, i.e. store object to database and/or forward events.
NOTES:
- set_* (see setField()) method may access both Client and Dispatcher
via Request
- before invoking set_*, request may forwarded to all the Observers,
depending on sendEvent()/setValue() implementation
- along with request, other Clients (Observers) get reference to
originating Client - TAKE CARE of public variables !!!
- this way, clients may send requests (Client.update()) to each other
without Dispatcher interference - usefull for chat, smart
server-side classes etc.
- it's up to each client to check the request origin and perform other
actions
- if set_ method is invoked before forwarding, it may cancel forwarding
by calling clearChanged(), depending on sendEvent()/setValue() implementation
- in general, sendEvent() should invoke setChanged() or generate
VRObjectException, setValue() should invoke notifyObservers( Request ),
and somewhere between those field is set and clearChanged() is
eventualy called
Field Summary | |
long |
db_id
|
static java.util.HashMap |
primitiveMap
|
static java.util.HashMap |
primitives
|
Constructor Summary | |
VRObject()
|
Method Summary | |
static java.lang.String |
arrayToString(java.lang.Object array)
Converts array val to String. |
boolean |
canRead(java.lang.String name)
Returns true if there's either field or get_ method |
boolean |
canWrite(java.lang.String name)
Returns true if there's either field or set_ method |
java.lang.Object |
clone()
|
boolean |
equals(VRObject obj)
VRObject.equals( VRObject ) if class and db_id are the same |
java.lang.String |
fieldToText(java.lang.reflect.Field field)
|
int |
fromString(java.lang.String s)
Uses toString() formated String to set variables |
static VRObject[] |
fromText(java.lang.String definition)
Returns array of objects defined by string in toText() format |
java.lang.String |
getClassName()
Returns class name without package name. |
java.lang.Object |
getField(java.lang.String name)
Returns a field value. |
java.lang.String[] |
getFields()
Returns names of all public member varaibles. |
long |
getId()
Returns objects unique id |
ID |
getID()
Returns objects unique id |
VRObject[] |
getMemebers()
Returns VRObjects that are member variables of this object. |
boolean |
hasField(java.lang.String name)
Returns true if this object contains public field with this name |
boolean |
hasMethod(java.lang.String name)
Returns true if this object contains public method with this name |
boolean |
isNew()
new object? |
static VRObject |
newInstance(java.lang.String className)
Creates new instance of className. |
void |
sendEvent(Request r)
Forwards request r to other clients, Observers added by Dispatcher. |
boolean |
sendResponse()
send OK on successfull execution? |
void |
setField(Request r)
Sets field r.getEventName() to r.getEventValue() |
void |
setField(java.lang.String name,
java.lang.String value)
Sets field name to value |
void |
setField(java.lang.String name,
java.lang.String value,
Request r)
Equals to obj.name = value. |
void |
setFields(java.lang.String[] names,
java.lang.String args)
setFields() on all variables specified in |
void |
setFields(VRObject o)
Takes field values from passed object, by field name. |
protected void |
setValue(Request r)
This implementation does nothing |
static java.lang.Object |
stringToArray(java.lang.Class cl,
java.lang.String val)
Converts String in arrayToString() format back to array. |
java.lang.String |
toString()
Converts VRObject to String. |
java.lang.String |
toText()
Returns string representation of objects, used by fromText() |
static java.lang.String |
toText(java.lang.Object[] obj)
Returns string representation of objects, used by fromText() |
java.lang.String |
toText(java.lang.String filter)
As toText(), but does not return fields beginning with filter. |
Methods inherited from class java.util.Observable |
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public long db_id
public static final java.util.HashMap primitives
public static final java.util.HashMap primitiveMap
Constructor Detail |
public VRObject()
Method Detail |
public boolean isNew()
public boolean sendResponse()
public long getId()
public ID getID()
public int fromString(java.lang.String s) throws VRObjectException, java.lang.NoSuchFieldException, java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException
VRObjectException
java.lang.NoSuchFieldException
java.lang.ClassNotFoundException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.NoSuchMethodException
java.lang.reflect.InvocationTargetException
public java.lang.String toString()
public static java.lang.String arrayToString(java.lang.Object array)
public static java.lang.Object stringToArray(java.lang.Class cl, java.lang.String val)
public static java.lang.String toText(java.lang.Object[] obj) throws java.lang.IllegalAccessException
java.lang.IllegalAccessException
public java.lang.String toText() throws java.lang.IllegalAccessException
java.lang.IllegalAccessException
public java.lang.String fieldToText(java.lang.reflect.Field field) throws java.lang.IllegalAccessException
java.lang.IllegalAccessException
public java.lang.String toText(java.lang.String filter) throws java.lang.IllegalAccessException
java.lang.IllegalAccessException
public java.lang.String getClassName()
public static VRObject[] fromText(java.lang.String definition) throws java.lang.NoSuchMethodException, java.lang.NoSuchFieldException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.ClassNotFoundException, java.lang.reflect.InvocationTargetException, VRObjectException, java.lang.Exception
java.lang.NoSuchMethodException
java.lang.NoSuchFieldException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.ClassNotFoundException
java.lang.reflect.InvocationTargetException
VRObjectException
java.lang.Exception
public static VRObject newInstance(java.lang.String className)
public void setFields(java.lang.String[] names, java.lang.String args) throws VRObjectException
VRObjectException
public void setFields(VRObject o)
public void setField(java.lang.String name, java.lang.String value) throws VRObjectException
VRObjectException
public void setField(Request r) throws VRObjectException
VRObjectException
Request
public void setField(java.lang.String name, java.lang.String value, Request r) throws VRObjectException
VRObjectException
public void sendEvent(Request r) throws RequestException
RequestException
protected void setValue(Request r)
public VRObject[] getMemebers()
public java.lang.String[] getFields()
getField(java.lang.String)
public boolean hasField(java.lang.String name)
public boolean hasMethod(java.lang.String name)
public boolean canWrite(java.lang.String name)
public boolean canRead(java.lang.String name)
public java.lang.Object getField(java.lang.String name) throws VRObjectException
VRObjectException
- if neither field nor method were foundpublic boolean equals(VRObject obj)
public java.lang.Object clone()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |