|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.mmbase.module.core.MMTable
org.mmbase.module.core.MMObjectBuilder
org.mmbase.module.core.VirtualBuilder
org.mmbase.module.core.ClusterBuilder
The builder for clusternodes.
Provides these methods to retrieve clusternodes:
getClusterNodes(SearchQuery)
to retrieve clusternodes using a SearchQuery (recommended).
getMultiLevelSearchQuery() as a convenience method to create a SearchQuery
searchMultiLevelVector() to retrieve clusternodes using a constraint string.
Individual nodes in a 'cluster' node can be retrieved by calling the node's
getNodeValue() method, using
the builder name (or step alias) as argument.
ClusterNode| Field Summary | |
static int |
SEARCH_ALL
Deprecated. use RelationStep.DIRECTIONS_ALL |
static int |
SEARCH_BOTH
Deprecated. use RelationStep.DIRECTIONS_BOTH
In future versions of MMBase (1.8 and up) this will be the default value |
static int |
SEARCH_DESTINATION
Deprecated. use RelationStep.DIRECTIONS_DESTINATION |
static int |
SEARCH_EITHER
Deprecated. use RelationStep.DIRECTIONS_EITHER.
In future versions of MMBase (1.8 and up) the default value will be RelationStep.DIRECTIONS_BOTH |
static int |
SEARCH_SOURCE
Deprecated. use RelationStep.DIRECTIONS_SOURCE |
| Fields inherited from class org.mmbase.module.core.MMObjectBuilder |
AGE_PARAMETERS, broadcastChanges, database, DEFAULT_ALINEA, DEFAULT_EOL, description, descriptions, fields, GUI_PARAMETERS, listCache, nodeCache, OBJ2TYPE_MAX_SIZE, oType, REPLACE_CACHE, searchAge, sortedDBLayout, TEMPNODE_DEFAULT_SIZE, TemporaryNodes, virtual |
| Fields inherited from class org.mmbase.module.core.MMTable |
mmb, tableName |
| Constructor Summary | |
ClusterBuilder(MMBase m)
Creates ClusterBuilder instance. |
|
| Method Summary | |
java.lang.String |
getBuilderNameFromField(java.lang.String fieldName)
Determines the builder part of a specified field. |
java.util.List |
getClusterNodes(SearchQuery query)
Executes query, returns results as clusternodes or MMObjectNodes if the
query is a Node-query. |
FieldDefs |
getField(java.lang.String fieldName)
Return a field. |
static java.lang.String |
getFieldNameFromField(java.lang.String fieldname)
Determines the fieldname part of a specified field (without the builder name). |
java.lang.String |
getGUIIndicator(MMObjectNode node)
What should a GUI display for this node. |
java.lang.String |
getGUIIndicator(java.lang.String field,
MMObjectNode node)
What should a GUI display for this node/field combo. |
BasicSearchQuery |
getMultiLevelSearchQuery(java.util.List snodes,
java.util.List fields,
java.lang.String pdistinct,
java.util.List tables,
java.lang.String where,
java.util.List sortFields,
java.util.List directions,
int searchdir)
Creates search query that selects all the objects that match the searchkeys. |
MMObjectNode |
getNewNode(java.lang.String owner)
Get a new node, using this builder as its parent. |
protected java.lang.String |
getRelationString(java.util.Vector alltables)
Creates a condition string which checks the relations between nodes. |
protected java.lang.String |
getRelationString(java.util.Vector alltables,
int searchdir,
java.util.HashMap roles)
Creates a condition string which checks the relations between nodes. |
static int |
getSearchDir(java.lang.String search)
Translates a string to a search direction constant. |
static java.lang.String |
getSearchDirString(int search)
Translates a search direction constant to a string. |
protected java.lang.String |
getSelectString(java.util.Vector alltables,
java.util.Vector rfields)
Creates a select string for the Multi level query. |
protected java.lang.String |
getSelectString(java.util.Vector alltables,
java.util.Vector originaltables,
java.util.Vector rfields,
boolean includeAllReferences)
Creates a select string for the Multi level query. |
byte[] |
getShortedByte(java.lang.String fieldname,
int number)
Get binary data of a database blob field. |
java.lang.String |
getShortedText(java.lang.String fieldname,
int number)
Get text from a blob field. |
protected java.lang.String |
getTableString(java.util.Vector alltables)
This method defines what is 'allowed' in tablenames. |
protected java.lang.String |
getTableString(java.util.Vector alltables,
java.util.HashMap roles)
This method defines what is 'allowed' in tablenames. |
protected java.lang.String |
idx2char(int idx)
Converts an index to a one-character string. |
java.util.Vector |
searchMultiLevelVector(int snode,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction)
Same as searchMultiLevelVector(snodes, fields, pdistinct, tables, where, orderVec, direction, RelationStep.DIRECTIONS_EITHER),
where snodes contains just the number specified by snode. |
java.util.Vector |
searchMultiLevelVector(java.util.Vector snodes,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction)
Same as searchMultiLevelVector(snodes, fields, pdistinct, tables, where, orderVec, direction, RelationStep.DIRECTIONS_EITHER). |
java.util.Vector |
searchMultiLevelVector(java.util.Vector snodes,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction,
int searchdir)
Return all the objects that match the searchkeys. |
| Methods inherited from class org.mmbase.module.core.VirtualBuilder |
create, getDBState, getGUIInicator, init, insert, processSearchResults |
| Methods inherited from class org.mmbase.module.core.MMTable |
created, getFullTableName, getTableName, size |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final int SEARCH_BOTH
RelationStep.DIRECTIONS_BOTH
In future versions of MMBase (1.8 and up) this will be the default value
public static final int SEARCH_DESTINATION
RelationStep.DIRECTIONS_DESTINATION
public static final int SEARCH_SOURCE
RelationStep.DIRECTIONS_SOURCE
public static final int SEARCH_ALL
RelationStep.DIRECTIONS_ALL
public static final int SEARCH_EITHER
RelationStep.DIRECTIONS_EITHER.
In future versions of MMBase (1.8 and up) the default value will be RelationStep.DIRECTIONS_BOTH
| Constructor Detail |
public ClusterBuilder(MMBase m)
ClusterBuilder instance.
Must be called from the MMBase class.
m - the MMbase cloud creating the node| Method Detail |
public static int getSearchDir(java.lang.String search)
public static java.lang.String getSearchDirString(int search)
public MMObjectNode getNewNode(java.lang.String owner)
getNewNode in class VirtualBuilderowner - The administrator creating the new node (ignored).
VirtualNode.public java.lang.String getGUIIndicator(MMObjectNode node)
getGUIIndicator in class MMObjectBuildernode - The node to display
String
public java.lang.String getGUIIndicator(java.lang.String field,
MMObjectNode node)
getGUIIndicator in class MMObjectBuildernode - The node to displayfield - the name field of the field to display
String, null if not specifiedpublic java.lang.String getBuilderNameFromField(java.lang.String fieldName)
public static java.lang.String getFieldNameFromField(java.lang.String fieldname)
fieldname - the name of the field
public FieldDefs getField(java.lang.String fieldName)
getField in class MMObjectBuilder
public java.util.Vector searchMultiLevelVector(int snode,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction)
searchMultiLevelVector(snodes, fields, pdistinct, tables, where, orderVec, direction, RelationStep.DIRECTIONS_EITHER),
where snodes contains just the number specified by snode.
searchMultiLevelVector(Vector,Vector,String,Vector,String,Vector,Vector,int)
public java.util.Vector searchMultiLevelVector(java.util.Vector snodes,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction)
searchMultiLevelVector(snodes, fields, pdistinct, tables, where, orderVec, direction, RelationStep.DIRECTIONS_EITHER).
searchMultiLevelVector(Vector,Vector,String,Vector,String,Vector,Vector,int)
public java.util.Vector searchMultiLevelVector(java.util.Vector snodes,
java.util.Vector fields,
java.lang.String pdistinct,
java.util.Vector tables,
java.lang.String where,
java.util.Vector orderVec,
java.util.Vector direction,
int searchdir)
QueryConvertor#setConstraint().
snodes - The numbers of the nodes to start the search with. These have to be present in the first table
listed in the tables parameter.fields - The fieldnames to return. This should include the name of the builder. Fieldnames without a builder prefix are ignored.
Fieldnames are accessible in the nodes returned in the same format (i.e. with manager indication) as they are specified in this parameter.
Examples: 'people.lastname'pdistinct - 'YES' indicates the records returned need to be distinct. Any other value indicates double values can be returned.tables - The builder chain. A list containing builder names.
The search is formed by following the relations between successive builders in the list. It is possible to explicitly supply
a relation builder by placing the name of the builder between two builders to search.
Example: company,people or typedef,authrel,people.where - The constraint, must be in one of the formats specified by QueryConvertor#setConstraint().
E.g. "WHERE news.title LIKE '%MMBase%' AND news.title > 100"orderVec - the fieldnames on which you want to sort.direction - A list of values containing, for each field in the order parameter, a value indicating whether the sort is
ascending (UP) or descending (DOWN). If less values are syupplied then there are fields in order,
the first value in the list is used for the remaining fields. Default value is 'UP'.
Vector containing all matching nodes
public java.util.List getClusterNodes(SearchQuery query)
throws SearchQueryException
clusternodes or MMObjectNodes if the
query is a Node-query.
query - The query.
SearchQueryException - When an exception occurred while retrieving the results.SearchQueryHandler.getNodes(org.mmbase.storage.search.SearchQuery, org.mmbase.module.core.MMObjectBuilder)
protected java.lang.String getSelectString(java.util.Vector alltables,
java.util.Vector rfields)
alltables - the tablenames to userfields - the fields that were requested
String
protected java.lang.String getSelectString(java.util.Vector alltables,
java.util.Vector originaltables,
java.util.Vector rfields,
boolean includeAllReferences)
alltables - the tablenames to useoriginaltables - the original tablenames that were specifiedrfields - the fields that were requestedincludeAllReferences - if true, for each trable specified in
originaltables, the number field will be added to the
returned select string. If false, no additional fields
will be added (this should change : fields should be added, but
only for those tables for which fields have been requested).
Stringprotected java.lang.String getTableString(java.util.Vector alltables)
protected java.lang.String getTableString(java.util.Vector alltables,
java.util.HashMap roles)
protected java.lang.String getRelationString(java.util.Vector alltables)
alltables - the tablenames to use
String
protected java.lang.String getRelationString(java.util.Vector alltables,
int searchdir,
java.util.HashMap roles)
alltables - the tablenames to usesearchdir - the directionality option to use
String, or null id no valid condiiton can be madeprotected java.lang.String idx2char(int idx)
idx - the index
String
XXX: So, why does this not return simply a 'char'?
public java.lang.String getShortedText(java.lang.String fieldname,
int number)
getShortedText in class VirtualBuilderfieldname - name of the fieldnumber - number of the object in the table
String containing the contents of a field as text
public byte[] getShortedByte(java.lang.String fieldname,
int number)
getShortedByte in class VirtualBuilderfieldname - name of the fieldnumber - number of the object in the table
byte containing the contents of a field as text
public BasicSearchQuery getMultiLevelSearchQuery(java.util.List snodes,
java.util.List fields,
java.lang.String pdistinct,
java.util.List tables,
java.lang.String where,
java.util.List sortFields,
java.util.List directions,
int searchdir)
QueryConvertor#setConstraint().
snodes - null or a list of numbers
of nodes to start the search with.
These have to be present in the first table listed in the
tables parameter.fields - List of fieldnames to return.
These should be formatted as stepalias.field,
e.g. 'people.lastname'pdistinct - 'YES' if the records returned need to be
distinct (ignoring case).
Any other value indicates double values can be returned.tables - The builder chain, a list containing builder names.
The search is formed by following the relations between
successive builders in the list.
It is possible to explicitly supply a relation builder by
placing the name of the builder between two builders to search.
Example: company,people or typedef,authrel,people.where - The constraint, must be in one of the formats specified by QueryConvertor#setConstraint().
E.g. "WHERE news.title LIKE '%MMBase%' AND news.title > 100"sortFields - null or a list of fieldnames on which you want to sort.directions - null or a list of values containing, for each field in the
sortFields parameter, a value indicating whether the sort is
ascending (UP) or descending (DOWN).
If less values are supplied then there are fields in order,
the first value in the list is used for the remaining fields.
Default value is 'UP'.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||