|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.activemath.abstractcontent.MultiMBase
public class MultiMBase
A class to provide access to several MBaseRefs through one single interface. It's implementing MBaseRef itself, therefore it's cascadable. Its functions include content aggregation (provide collections (content blocks) of several MBases that not necessarily contain the same collections) and a bit of load balancing. It implements only the new style MBaseRef interface, which was mainly created to make this class possible.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.activemath.abstractcontent.MBaseRef |
|---|
MBaseRef.Dependency, MBaseRef.Relation |
| Field Summary | |
|---|---|
protected Hashtable |
connectedMBaseHash
Hashtable of supported collections / connected databases. |
protected Set |
providedCollections
a set of Strings with provided collections |
protected Set |
usedMBaseRefs
a set of the MBaseRefs inside this |
| Constructor Summary | |
|---|---|
MultiMBase(Collection connections)
constructs a new MultiMBase |
|
| Method Summary | |
|---|---|
protected void |
assertCollectionCompatibility(Collection collections)
makes sure the given collections Collection only contains the collection this MBase provides |
void |
assertItsUp()
Asserts that the database connection is up and running. |
String |
getAttribute(MBaseID id,
String attName)
Returns the attribute value of the attribute of given name of the element with given ID. |
MBaseID |
getCanonicalID(MBaseID source)
Returns a fully-qualified unique ID that enables collections of IDs to behave properly. |
OJElement |
getChildren(MBaseID id,
String xPathReducedExpression)
Returns the content of the named descendant of the element of given ID. |
Collection |
getCollectionsProvided()
returns a Collection (object) with the collections (content blocks) provided by this MBaseRef |
Map |
getCommonName(MBaseID id)
Returns the names of this element which is fetched either from the <metadata><dc:Title>
descendant or from the <commonname> elements. |
OJElement |
getCompleteDCMetadata(MBaseID id)
Returns a metadata element with only Dublin-Core children including inherited
ones from their parents. |
Iterator |
getDefinitions(MBaseID id,
Collection collections)
For a symbol, this method returns the IDs of all definitions. |
Iterator |
getDependencies(MBaseID mBaseID)
Gets an Iterator of MBaseRef.Dependency dependencies with all dependencies registered for that
element. |
OJElement |
getFormalContent(MBaseID id)
From any ID this method returns the row of FMP elements' contents. |
MBaseID[] |
getForWhat(MBaseID id)
Returns the ID contained in the attribute for |
Iterator |
getIncomingRelations(MBaseID id,
Collection collections)
Returns an iterator of MBaseRef.Relations objects describing the relations that point to this item. |
Iterator |
getItemsModifiedSince(Date date)
|
Date |
getLastModified(Collection ids)
Returns the latest modification dates of the elements whose IDs are given. |
protected MBaseRef |
getMBase(MBaseID forContent)
finds an appropriate MBase to query and returns the result. |
protected MBaseRef |
getMBase(String forCollection)
finds an appropriate MBase to query and returns the result. |
OJElement |
getMetadata(MBaseID id)
Returns the contents of the <metdata> child of this element. |
Iterator |
getOutgoingRelations(MBaseID id)
Returns an iterator of MBaseRef.Relations objects describing the relations that point from this item. |
Iterator |
getProofs(MBaseID assertionID,
Collection collections)
For an assertion, this method returns the IDs of all of its proofs. |
Iterator |
getRelated(MBaseID id,
Collection collections)
Same as getDependencies(org.activemath.abstractcontent.MBaseID) but returns the converse: all dependencies whose Dependency#idOn is the given ID. |
OJDocument |
getStructuredListOfConcepts(Collection collections)
This expensive operation walks the complete XML structure stored in the server and creates a theory element for each theory then a concept element for each of the concepts (symbol, definition, assertion, proof, methods). |
Map |
getTagFreeCommonName(MBaseID id)
Returns the titles without any tags, just extracting the text or partially rendering it. |
List |
getTextualContent(MBaseID id)
From any ID this method returns the row of CMP elements' contents. |
MBaseID |
getTheory(MBaseID id)
Returns the ID of the closest parent (including the element itself) that either has a theory attribute or is a theory element or null if there is no such parent. |
String |
getTypeString(MBaseID id)
Returns the name of the element whose ID is given. |
Iterator |
listItems(Collection collections,
String type)
Lists all the items being children of the element of the indicated ID. |
Iterator |
listItems(MBaseID id)
Lists all the items being children of the element of the indicated ID. |
Iterator |
listTheories(Collection collections)
Lists all the IDs of the theory elements contained in the indicated collections
. |
protected void |
registerConnections(Collection connections)
registers the given connections of MBaseRefs to the connectedMBaseHash
hashtable. |
Iterator |
searchText(String textToSearch,
Collection collections)
Searches the union of all text elements, but not the attributes, for the given substring in a case-sensistive manner. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected Hashtable connectedMBaseHash
protected Set providedCollections
protected Set usedMBaseRefs
| Constructor Detail |
|---|
public MultiMBase(Collection connections)
throws MBaseException
connections - a Collection with all the connections this MultiMBase shall
provide. Load balancing and content collection dependencies are automatically set up. If
you want to weighten load balancing access, you may pass the same connection multiple
times; yet this is to the cost of setup time and only usable if the connection weights
are small entire numbers (e.G. one could pass a collection 100 times and another 103
times to show a 1.5% preference for the later, but this would imply far longer setup
time and more space requirements)
MBaseException - If antyhing goes wrong| Method Detail |
|---|
public OJElement getChildren(MBaseID id,
String xPathReducedExpression)
throws MBaseException
xPathReducedExpression parameter which aims at imitating an
XPath expression except it only accepts the ., / and named
elements.
This walks the tree of descendants, taking children everytime a /elementName is
found in the xPathReducedExpression and returns the content of the end child.
Such a method might be a warmer future for all requests, including getDependencies, getMetaData and getCommonName.
getChildren in interface MBaseRefid - the MBaseID to get the children ofxPathReducedExpression - as described above
OJElement thus crafted
MBaseException - if something fails
public String getAttribute(MBaseID id,
String attName)
throws MBaseException
MBaseRef
getAttribute in interface MBaseRefid - the id of the XML element that is to be looked forattName - the name of the attribute to be looked for in this
element
MBaseException - if anything goes wrong
public Iterator getDependencies(MBaseID mBaseID)
throws MBaseException
MBaseRef.Dependency dependencies with all dependencies registered for that
element. Dependencies are of many types as described in the MBaseRef,Dependency class.Note that the server implementation is not required to return all these types only the content of the <depends-on> elements are required to be returned.
getDependencies in interface MBaseRefmBaseID - which's dependencies are to be returned
MBaseException - if something's wrong, i.e. if a collection was queried that is not
provided
public Iterator getRelated(MBaseID id,
Collection collections)
throws MBaseException
getDependencies(org.activemath.abstractcontent.MBaseID) but returns the converse: all dependencies whose Dependency#idOn is the given ID.
getRelated in interface MBaseRefid - which's relations are to be returnedcollections - java.util.Collection of (content) collections as Strings to search in
MBaseException - if something's wrong.
public Iterator getDefinitions(MBaseID id,
Collection collections)
throws MBaseException
MBaseRefsymbol, this method returns the IDs of all definitions.
getDefinitions in interface MBaseRefid - id the id of the symbol whose definitions are looked atcollections - collections the name of the collections to be searched
MBaseException - if something's wrong.
public Iterator getProofs(MBaseID assertionID,
Collection collections)
throws MBaseException
MBaseRefassertion, this method returns the IDs of all of its proofs.
getProofs in interface MBaseRefassertionID - MBaseID denoting the assertion whose proofs are to be searchedcollections - Collection of (content) collections to search in
MBaseException - if something's wrong.
public List getTextualContent(MBaseID id)
throws MBaseException
<OMS> who are "referenced" by means of the
xref attribute.
getTextualContent in interface MBaseRefid - The ID of the item whose CMPs are to be returned
OJElements being the CMP nodes
MBaseException - if something fails
public OJElement getFormalContent(MBaseID id)
throws MBaseException
<OMS> who are "referenced" by means of the
xref attribute.
getFormalContent in interface MBaseRefid - The ID whose FMP child is to be fetched
OJElement representing the <FMP> or
null if there is no <FMP> content behind the ID
MBaseException - if something fails
public OJElement getMetadata(MBaseID id)
throws MBaseException
<metdata> child of this element.
getMetadata in interface MBaseRefid - The ID of the item whose metadata element is to be fetched.
- Returns:
- The
metadata OJElement
- Throws:
MBaseException - if something fails
public OJElement getCompleteDCMetadata(MBaseID id)
throws MBaseException
MBaseRefmetadata element with only Dublin-Core children including inherited
ones from their parents. The inheritance is described in OMDoc 1.1 specifications (i.e. added values with
children taking precedence when a triple (language, element-name, role) also exists. This allows most of the copyright informations to be stored in the metadata element of the OMDoc while additions can override or enrich these values.
getCompleteDCMetadata in interface MBaseRefid - the ID of the item whose metadata is to be fetched
OJElement metadata node
MBaseException - If anything happens
public MBaseID getTheory(MBaseID id)
throws MBaseException
null if there is no such parent.
getTheory in interface MBaseRefid - The item whose theory is to be found
MBaseID of the related theory element
MBaseException - if something's wrong.
public Map getCommonName(MBaseID id)
throws MBaseException
<metadata><dc:Title>
descendant or from the <commonname> elements.
The table returned has, as keys, the language and as values the text of this common-name.
- Specified by:
getCommonName in interface MBaseRef
- Parameters:
id - The ID of the item whose titles are to be looked at.
- Returns:
- A
Map of titles (keys String language}, values the
String titles
- Throws:
MBaseException - if something's wrong.
public String getTypeString(MBaseID id)
throws MBaseException
getTypeString in interface MBaseRefid - The ID of the element
MBaseException - if something's wrong.
public MBaseID[] getForWhat(MBaseID id)
throws MBaseException
for
getForWhat in interface MBaseRefid - The ID of the item whose for attribute is to be looked
at.
for attribute of the element
MBaseException - if something's wrong.
public OJDocument getStructuredListOfConcepts(Collection collections)
throws MBaseException
getStructuredListOfConcepts in interface MBaseRefcollections - strings with the name of the collection to search in
null,
if there are no contents found
MBaseException - if something failspublic Collection getCollectionsProvided()
getCollectionsProvided in interface MBaseRef
public MBaseID getCanonicalID(MBaseID source)
throws MBaseException
MBaseRefMBase engines should be consistent and never return more than one ID for a given item.
getCanonicalID in interface MBaseRefsource - the id that may be missing a theory or collection.
MBaseException - If anything goes wrong
public Iterator searchText(String textToSearch,
Collection collections)
throws MBaseException
searchText in interface MBaseReftextToSearch - String containing the text to be searchedcollections - Collection of collections (as Strings) to search in
MBaseException - if something's wrong.
public Iterator listItems(MBaseID id)
throws MBaseException
MBaseRefomgroup and theory elements
only.
listItems in interface MBaseRefid - the ID of the omgroup, theory
or other element
MBaseID objects
MBaseException - If anything goes wrong
public Iterator listTheories(Collection collections)
throws MBaseException
MBaseReftheory elements contained in the indicated collections
.
listTheories in interface MBaseRefcollections - the set of collection-names to be walked through for theories.
MBaseException - If anything goes wrong
public Iterator listItems(Collection collections,
String type)
throws MBaseException
MBaseRefomgroup and theory elements
only.
listItems in interface MBaseRefcollections - the possible collections where to search for the items of this typetype - the element name wished to be returne
MBaseID objects to the given elements
MBaseException - If anything goes wrong
public void assertItsUp()
throws MBaseException
assertItsUp in interface MBaseRefMBaseException - if something's wrong.
public Date getLastModified(Collection ids)
throws MBaseException
MBaseRef
getLastModified in interface MBaseRefids - a list of MBaseIDs of items, theories, or Strings of collection name
MBaseException
public Iterator getItemsModifiedSince(Date date)
throws MBaseException
getItemsModifiedSince in interface MBaseRefMBaseException
public Map getTagFreeCommonName(MBaseID id)
throws MBaseException
MBaseRef
getTagFreeCommonName in interface MBaseRefid - the item id.
MBaseException
public Iterator getIncomingRelations(MBaseID id,
Collection collections)
throws MBaseException
MBaseRefMBaseRef.Relations objects describing the relations that point to this item.
If the item is a theory, the relations are the imports statements.
getIncomingRelations in interface MBaseRefid - the id from which to see the relationscollections - from where should these relations be incoming
MBaseRef.Relations objects
MBaseException - if anything
public Iterator getOutgoingRelations(MBaseID id)
throws MBaseException
MBaseRefMBaseRef.Relations objects describing the relations that point from this item.
If the item is a theory, the relations are the imports statements.
getOutgoingRelations in interface MBaseRefid - the id from which to see the relations
MBaseRef.Relations objects
MBaseException - if anything
protected MBaseRef getMBase(MBaseID forContent)
throws MBaseCollectionNotProvidedException
forContent - MBaseID with the requested content
MBaseCollectionNotProvidedException - if the collection part of the MBaseID is not
amongst the providedCollections
protected MBaseRef getMBase(String forCollection)
throws MBaseCollectionNotProvidedException
forCollection - String identifying the collection to focus on
MBaseCollectionNotProvidedException - if the collection part of the MBaseID is not
amongst the providedCollections
protected void registerConnections(Collection connections)
throws MBaseException
connectedMBaseHash
hashtable.
connections - Collection with connections to register
MBaseException - If some connection fails
protected void assertCollectionCompatibility(Collection collections)
throws MBaseCollectionNotProvidedException
collections - Collection given
MBaseCollectionNotProvidedException - if an unprovided collection is requested
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||