|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.waveset.util.AbstractXmlObject
com.waveset.object.GenericObject
A class used to represent objects as an abstract collection of name/value pairs rather than a specific Java class. It is essentially a Map, but implements a few extensions to make manipulating hierarchies of objects easier. In particular, it supports a concept called "path expressions" where complex object traversals can be specified as a string, this string can be used as the key to the map.
This is the foundation of "views" at the Session level. The motivation for path expressions stems from the need to reference attributes in a flat namespace when editing an object with HTML forms.
Nested Class Summary |
Nested classes inherited from class java.util.Map |
java.util.Map.Entry |
Field Summary | |
static java.lang.String |
ATT_ID
|
static java.lang.String |
ATT_NAME
|
static java.lang.String |
ATT_TYPE
|
static java.lang.String |
ATT_VALUE
|
static java.lang.String |
code_id
|
static java.lang.String |
EL_ATTRIBUTE
|
static java.lang.String |
EL_FORMREF
|
static java.lang.String |
ELEMENT
The name of the XML element used when serializing this object. |
static int |
FLATTEN_ALL
Flattening level value passed to toMap() to indicate that all lists, including simple value lists, should be flattened. |
static int |
FLATTEN_NOTHING
Flattening level value passed to toMap() to indicate that no list flattening is to be performed. |
static int |
FLATTEN_OBJECT_LISTS
Flattening level value passed to toMap() to indicate that flattening of GenericObject lists should be performed, but not flattening of simple value lists. |
static int |
SYN_MISMATCHED_NAMES
Attempt to assign a GEO to a named list element but the names don't match, e.g. |
static int |
SYN_MISPLACED_DOT
Misplaced dot, foo[. |
static int |
SYN_MISPLACED_LBRACKET
Misplaced [, foo[[ or foo.[ |
static int |
SYN_NAMED_LIST
Nested list with symbolic name, foo[bar][0] Meaningless since nested lists can't have names. |
static int |
SYN_NO_DOT
Missing dot, foo[0]bar Could be smarter about this. |
static int |
SYN_NO_GEO
Attempting to traverse through something with foo[bar].x Where foo[bar] isn't a generic object. |
static int |
SYN_NO_INDEX
Empty list index, foo[] |
static int |
SYN_NO_LIST
Indexing something that isn't a list, e.g. |
static int |
SYN_NO_NAME
Dot with target but no name, I don't think this can happen. |
static int |
SYN_NO_TARGET
Dot with no target, just "." |
Fields inherited from class com.waveset.util.AbstractXmlObject |
_trace |
Constructor Summary | |
GenericObject()
|
|
GenericObject(org.w3c.dom.Element e)
|
|
GenericObject(java.util.Map map)
|
|
GenericObject(java.lang.String xml)
|
|
GenericObject(java.lang.String xml,
boolean validate)
|
Method Summary | |
void |
add(java.lang.String path,
java.lang.Object value)
Add an element to a list. |
void |
addAlias(java.lang.String alias,
java.lang.String attribute)
Add an alias. |
void |
assimilate(java.util.Map map)
Given a map containing a flat list of attributes, assimilate the values into our object. |
void |
assimilateModifications(java.util.Map map)
A variant of assimilate that recognizes Modification objects. |
void |
browse()
Method to bring up the view browser. |
void |
clear()
|
void |
clearAliases()
Clear the aliases. |
boolean |
containsKey(java.lang.Object key)
|
boolean |
containsValue(java.lang.Object value)
|
static void |
dumpMap(java.util.Map map)
|
java.util.Set |
entrySet()
|
void |
filter(java.lang.String[] names)
Given an array of strings, remove any attributes entries whose names are contained in the array. |
static GenericObject |
findObject(java.util.List list,
java.lang.String name)
Given a list of what are expected to be GenericObjects, return the one with the given name. |
static GenericObject |
findObject(java.util.List list,
java.lang.String attname,
java.lang.Object value)
Given a list of what are expected to be GenericObjects, return the one whose attribute matches the given value. |
java.lang.Object |
get(java.lang.Object key)
|
java.util.Map |
getAttributes()
|
boolean |
getBoolean(java.lang.String name)
|
java.util.Date |
getDate(java.lang.String name)
Coerce an object into a date. |
java.util.Date |
getDate(java.lang.String name,
boolean throwExceptions)
Coerce an object into a date. |
java.util.Date |
getDate(java.lang.String name,
boolean throwExceptions,
java.util.Locale locale)
Coerce a string into a date. |
java.lang.String |
getElementName()
Return the element name. |
EncryptedData |
getEncrypted(java.lang.String name)
Coerce an object into an encrypted string. |
Form |
getForm()
|
ObjectRef |
getFormRef()
|
java.lang.String |
getId()
|
int |
getInt(java.lang.String name)
Coerce an Object into an int primitive. |
java.util.List |
getList(java.lang.String name)
|
java.util.List |
getListOfStrings(java.lang.String name)
|
java.lang.Object |
getLocal(java.lang.String name)
|
long |
getLong(java.lang.String name)
Coerce an Object value into a long primitive. |
java.lang.String |
getName()
|
GenericObject |
getObject(java.lang.String name)
|
GenericObject |
getObjectCreateIfNull(java.lang.String name)
|
java.lang.String |
getString(java.lang.String name)
|
boolean |
isEmpty()
|
java.util.Set |
keySet()
|
static void |
main(java.lang.String[] args)
|
void |
parseXml(org.w3c.dom.Element e)
|
void |
parseXml(java.lang.String xml,
boolean validate)
|
static void |
println(java.lang.String msg)
|
java.lang.Object |
put(java.lang.Object key,
boolean b)
|
java.lang.Object |
put(java.lang.Object key,
int i)
|
java.lang.Object |
put(java.lang.Object key,
long l)
|
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value)
|
void |
putAll(java.util.Map src)
|
void |
putLocal(java.lang.String name,
java.lang.Object value)
|
java.lang.Object |
remove(java.lang.Object key)
|
void |
removeLocal(java.lang.String name)
|
void |
setAliases(java.util.Map aliases)
Set the alias map. |
void |
setAttributes(java.util.Map map)
Given a simple Map, possibly containing dotted names, expand it into a hierarchical GenericObject. |
void |
setForm(Form f)
|
void |
setFormRef(ObjectRef ref)
|
void |
setId(java.lang.String id)
|
void |
setIgnoreForm(boolean b)
|
void |
setName(java.lang.String s)
|
int |
size()
|
static void |
sort(java.util.List list)
Sort a List of GenericObjects by name. |
static void |
sort(java.util.List list,
java.lang.String attname)
Sort a List of GenericObjects according to one if its attributes. |
static void |
test1(java.lang.String[] args)
|
static void |
test2()
|
static void |
test3(java.lang.String[] args)
|
java.lang.String |
toDisplayString()
|
void |
toDisplayString(java.lang.StringBuffer b,
int indent,
boolean showName)
|
java.util.Map |
toMap()
Convert a hierarchy of GenericObjects into a flat Map of name/value pairs. |
java.util.Map |
toMap(boolean flattenLists)
Deprecated. - Use toMap(int level) instead. |
java.util.Map |
toMap(int level)
|
java.util.Map |
toMap(java.lang.String context)
|
java.util.Map |
toMap(java.lang.String context,
boolean flattenLists)
Deprecated. - Use toMap(String, int) instead. |
java.util.Map |
toMap(java.lang.String context,
int level)
|
java.lang.String |
toString()
|
void |
toXml(java.lang.StringBuffer b,
int indent)
Serialize into a buffer with optional indentation. |
java.lang.String |
toXmlNoForm()
Serialize the object without the form, even if it is owned by this object. |
java.lang.String |
toXmlNormalized()
|
void |
toXmlNormalized(java.lang.StringBuffer b,
int indent)
|
void |
toXmlNormalized(java.lang.StringBuffer b,
int indent,
java.lang.String name)
|
void |
trace()
|
void |
trace(java.lang.String title)
Debugging trick, dump the object to the console, but don't include the form. |
java.util.Collection |
values()
|
Methods inherited from class com.waveset.util.AbstractXmlObject |
addXmlHeader, cloneObject, dump, dumpFile, getReference, println, setTrace, toIdentityString, toVerboseString, toVerboseString, toXml, toXml, toXml |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
equals, hashCode |
Field Detail |
public static final java.lang.String code_id
public static final java.lang.String ELEMENT
public static final int FLATTEN_NOTHING
public static final int FLATTEN_OBJECT_LISTS
public static final int FLATTEN_ALL
public static final int SYN_MISPLACED_DOT
public static final int SYN_NO_GEO
public static final int SYN_NO_TARGET
public static final int SYN_NO_NAME
public static final int SYN_MISPLACED_LBRACKET
public static final int SYN_NAMED_LIST
public static final int SYN_NO_LIST
public static final int SYN_NO_INDEX
public static final int SYN_NO_DOT
public static final int SYN_MISMATCHED_NAMES
public static final java.lang.String ATT_TYPE
public static final java.lang.String ATT_ID
public static final java.lang.String ATT_NAME
public static final java.lang.String ATT_VALUE
public static final java.lang.String EL_ATTRIBUTE
public static final java.lang.String EL_FORMREF
Constructor Detail |
public GenericObject()
public GenericObject(java.util.Map map) throws WavesetException
public GenericObject(java.lang.String xml) throws WavesetException
public GenericObject(java.lang.String xml, boolean validate) throws WavesetException
public GenericObject(org.w3c.dom.Element e) throws WavesetException
Method Detail |
public void setId(java.lang.String id)
public void setFormRef(ObjectRef ref)
public void setForm(Form f)
public void setIgnoreForm(boolean b)
public java.lang.String toString()
public java.lang.String toDisplayString()
public void toDisplayString(java.lang.StringBuffer b, int indent, boolean showName)
public java.lang.String getElementName()
AbstractXmlObject
getElementName
in interface XmlObject
getElementName
in class AbstractXmlObject
public java.lang.String getId()
public ObjectRef getFormRef()
public Form getForm()
public java.util.Map getAttributes()
public void trace(java.lang.String title)
public void trace()
public void clearAliases()
public void addAlias(java.lang.String alias, java.lang.String attribute)
public void setAliases(java.util.Map aliases)
public void filter(java.lang.String[] names) throws WavesetException
WavesetException
public static GenericObject findObject(java.util.List list, java.lang.String name)
public static GenericObject findObject(java.util.List list, java.lang.String attname, java.lang.Object value)
public void clear()
clear
in interface java.util.Map
public boolean containsKey(java.lang.Object key)
containsKey
in interface java.util.Map
public boolean containsValue(java.lang.Object value)
containsValue
in interface java.util.Map
public java.util.Set entrySet()
entrySet
in interface java.util.Map
public java.util.Set keySet()
keySet
in interface java.util.Map
public java.lang.Object get(java.lang.Object key)
get
in interface java.util.Map
public boolean isEmpty()
isEmpty
in interface java.util.Map
public java.lang.Object put(java.lang.Object key, java.lang.Object value) throws java.lang.IllegalArgumentException
put
in interface java.util.Map
java.lang.IllegalArgumentException
public void putAll(java.util.Map src) throws java.lang.UnsupportedOperationException
putAll
in interface java.util.Map
java.lang.UnsupportedOperationException
public java.lang.Object remove(java.lang.Object key) throws java.lang.IllegalArgumentException
remove
in interface java.util.Map
java.lang.IllegalArgumentException
public int size()
size
in interface java.util.Map
public java.util.Collection values()
values
in interface java.util.Map
public java.lang.Object put(java.lang.Object key, boolean b) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public java.lang.Object put(java.lang.Object key, int i) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public java.lang.Object put(java.lang.Object key, long l) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public void add(java.lang.String path, java.lang.Object value) throws WavesetException
WavesetException
public java.lang.Object getLocal(java.lang.String name)
public void putLocal(java.lang.String name, java.lang.Object value) throws WavesetException
WavesetException
public void removeLocal(java.lang.String name)
public java.lang.String getString(java.lang.String name)
public java.util.List getList(java.lang.String name)
public java.util.List getListOfStrings(java.lang.String name)
public GenericObject getObject(java.lang.String name)
public GenericObject getObjectCreateIfNull(java.lang.String name)
public boolean getBoolean(java.lang.String name)
public EncryptedData getEncrypted(java.lang.String name)
public java.util.Date getDate(java.lang.String name)
public java.util.Date getDate(java.lang.String name, boolean throwExceptions) throws WavesetException
WavesetException
public java.util.Date getDate(java.lang.String name, boolean throwExceptions, java.util.Locale locale) throws WavesetException
WavesetException
public int getInt(java.lang.String name)
Object
into an int
primitive.
public long getLong(java.lang.String name)
Object
value into a long
primitive.
public void setName(java.lang.String s)
public java.lang.String getName()
public void setAttributes(java.util.Map map) throws WavesetException
WavesetException
public void assimilate(java.util.Map map) throws WavesetException
The exception will be that we will not be able to restore the class names of GenericObject's since those aren't included in the paths. // * Perhaps class names should be attributes?
WavesetException
public void assimilateModifications(java.util.Map map) throws WavesetException
WavesetException
public java.util.Map toMap()
Objects that we don't know how to traverse will be left as-is in the map. Might want an option to coerce these to strings?
The resulting Map can be passed to the assimilate method to produce a duplicate of this object.
public java.util.Map toMap(boolean flattenLists)
public java.util.Map toMap(int level)
public java.util.Map toMap(java.lang.String context)
public java.util.Map toMap(java.lang.String context, boolean flattenLists)
public java.util.Map toMap(java.lang.String context, int level)
public static void sort(java.util.List list)
public static void sort(java.util.List list, java.lang.String attname)
public java.lang.String toXmlNoForm()
public void toXml(java.lang.StringBuffer b, int indent)
AbstractXmlObject
toXml
in interface XmlObject
toXml
in class AbstractXmlObject
public void parseXml(org.w3c.dom.Element e) throws WavesetException
WavesetException
public void parseXml(java.lang.String xml, boolean validate) throws WavesetException
WavesetException
public java.lang.String toXmlNormalized()
public void toXmlNormalized(java.lang.StringBuffer b, int indent)
public void toXmlNormalized(java.lang.StringBuffer b, int indent, java.lang.String name)
public void browse()
public static void main(java.lang.String[] args)
public static void println(java.lang.String msg)
public static void dumpMap(java.util.Map map)
public static void test1(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public static void test2() throws java.lang.Exception
java.lang.Exception
public static void test3(java.lang.String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |