|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.activemath.abstractcontent.CascadingMBaseRef
public class CascadingMBaseRef
A class to wrap several MBaseRef within a cascaded order, each shadowing the next.
This class is based on the ability for an MBaseRef to say when it contains an ID,
currently, this is based on the use of MBaseRef.getCanonicalID(org.activemath.abstractcontent.MBaseID): before each request, this
object goes along the list of MBaseRefs and asks it wether it contains the given ID, if
yes, the indicated request is sent to this MBaseRef.
For the search facilities which involve returning all relations, all the MBaseRefs are
used. This means that some of these requests may actually return double values.
This allows an author, for example, to have its own OmdocJdomMBase, for example, with a small content in it, the content it is editing, and relay the rest of the request to a larger container. It also allows authors to shadow an existing content by returning, from its own MBase, the content of IDs it wishes to overwrite.
FUTURE: this class will, in the future, be an extension of MultiMBase so as to target
better the identification of the appropriate MBaseRef using collection names.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.activemath.abstractcontent.MBaseRef |
|---|
MBaseRef.Dependency, MBaseRef.Relation |
| Constructor Summary | |
|---|---|
CascadingMBaseRef(List mbases)
|
|
CascadingMBaseRef(Subconfiguration config)
Uses the mbases.xxx children to create each MBases, which are sorted in
alphabetical order. |
|
| Method Summary | |
|---|---|
void |
assertItsUp()
Asserts that the database connection is up and running. |
protected boolean |
containsID(MBaseRef ref,
MBaseID id)
Invokes MBaseRef.getCanonicalID(org.activemath.abstractcontent.MBaseID) on the indicated MBaseRef returning true
if no exception was thrown or false if one was. |
String |
getAttribute(MBaseID id,
String attributeName)
Returns the MBaseRef.getAttribute(org.activemath.abstractcontent.MBaseID, java.lang.String) of the first MBaseRef that contains the ID. |
MBaseID |
getCanonicalID(MBaseID id)
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 id)
Gets an Iterator of MBaseRef.Dependency relations with all relations that stem from this
element. |
OJElement |
getFormalContent(MBaseID id)
From any ID this method returns the content of the FMP element. |
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. |
MBaseRef |
getMBaseContaining(MBaseID id)
Goes through the list of MBaseRefs invoking, on each, containsID(MBaseRef,MBaseID) and
returning the first that responds true. |
MBaseRef |
getMBaseContaining(String collName)
|
protected MBaseRef |
getMBaseContainingOrThrow(MBaseID id)
The same as getMBaseContaining(org.activemath.abstractcontent.MBaseID) but throws MBaseItemNotFoundException instead
of returning null. |
List |
getMBaseList()
|
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 id,
Collection collections)
For an assertion, this method returns the IDs of all of its proofs. |
Iterator |
getRelated(MBaseID id,
Collection collections)
Goes through all MBaseRefs amalgamating all the Iterators provided. |
OJDocument |
getStructuredListOfConcepts(Collection collections)
This expensive operation walks the complete XML structure of one single collection 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 |
iterateOverIterators(Iterator itsOfIt)
|
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
. |
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 |
| Constructor Detail |
|---|
public CascadingMBaseRef(List mbases)
mbases - a List of MBaseRefs to be used.
public CascadingMBaseRef(Subconfiguration config)
throws Exception
mbases.xxx children to create each MBases, which are sorted in
alphabetical order. The MBaseRefs are created using ConfiguredObjectMaker
which is expected to be provided by the sub-configuration.
config - The subconfiguration to extract the mbases. from
Exception - if anything happens| Method Detail |
|---|
public List getMBaseList()
MBaseRef that is being queried.
public MBaseRef getMBaseContaining(MBaseID id)
throws MBaseException
MBaseRefs invoking, on each, containsID(MBaseRef,MBaseID) and
returning the first that responds true.
id - The ID to search for
MBaseRef in the list that responds
positively to containsID(MBaseRef,MBaseID).
MBaseException - if any of the MBaseRefs throw it
MBaseItemNotFoundException - never, returns null instead
public MBaseRef getMBaseContaining(String collName)
throws MBaseException
MBaseException
public Iterator getDependencies(MBaseID id)
throws MBaseException
MBaseRefMBaseRef.Dependency relations with all relations that stem from this
element. Relations are considered the same as dependencies in this class.
They are of many types as described in the MBaseRef.Dependency class.
Use MBaseRef.getDependencies(org.activemath.abstractcontent.MBaseID) to read the list of relations that stem from another element
but target this element.
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 MBaseRefid - The ID of the element whose dependencies are wished
MBaseRef.getDependencies(org.activemath.abstractcontent.MBaseID) on the first MBaseRef that contains the indicated ID.
MBaseException - If any of the mbases throws an exception different than MBaseItemNotFoundException
public Iterator getRelated(MBaseID id,
Collection collections)
throws MBaseException
MBaseRefs amalgamating all the Iterators provided. TODO:
This method should be enhanced to avoid providing double entries which ican happen when in
the scenario of an overwriting (i.e. when an item is present in two MBases.
getRelated in interface MBaseRefid - Missing description of Parametercollections - Missing description of Parameter
Iterator objects returned by each
of the members of the list.
MBaseException - Missing description of Exception
public OJElement getChildren(MBaseID id,
String xPathReducedExpression)
throws MBaseException
MBaseRefxPathReducedExpression 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 attributeName)
throws MBaseException
MBaseRef.getAttribute(org.activemath.abstractcontent.MBaseID, java.lang.String) of the first MBaseRef that contains the ID.
getAttribute in interface MBaseRefid - Missing description of ParameterattributeName - Missing description of Parameter
MBaseException - Missing description of Exception
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 id,
Collection collections)
throws MBaseException
MBaseRefassertion, this method returns the IDs of all of its proofs.
getProofs in interface MBaseRefid - 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
MBaseRef<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
MBaseRef<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
MBaseRef<metdata> child of this element. This does not
apply the inheritance principles of Dublin-Core metadata (as described in OMDoc 1.1
specifications), please use MBaseRef.getCompleteDCMetadata(org.activemath.abstractcontent.MBaseID) for this task.
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
MBaseRefnull 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
MBaseRef<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
MBaseRef
getTypeString in interface MBaseRefid - The ID of the element
MBaseException - if something's wrong.
public MBaseID[] getForWhat(MBaseID id)
throws MBaseException
MBaseReffor
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
MBaseRef
getStructuredListOfConcepts in interface MBaseRefcollections - strings with the name of the collection to search in
null,
if there are no contents found
MBaseException - if something fails
public Collection getCollectionsProvided()
throws MBaseException
MBaseRef
getCollectionsProvided in interface MBaseRefMBaseException - If anything goes wrong (normally nothing is expected to go wrong
here)
public MBaseID getCanonicalID(MBaseID id)
throws MBaseException
MBaseRefMBase engines should be consistent and never return more than one ID for a given item.
getCanonicalID in interface MBaseRefid - the id that may be missing a theory or collection.
MBaseException - If anything goes wrong
public Iterator searchText(String textToSearch,
Collection collections)
throws MBaseException
MBaseRef
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)
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
public void assertItsUp()
throws MBaseException
MBaseRef
assertItsUp in interface MBaseRefMBaseException - if something's wrong.public Iterator iterateOverIterators(Iterator itsOfIt)
protected MBaseRef getMBaseContainingOrThrow(MBaseID id)
throws MBaseException
getMBaseContaining(org.activemath.abstractcontent.MBaseID) but throws MBaseItemNotFoundException instead
of returning null.
id - Missing description of Parameter
MBaseException - Missing description of Exception
protected boolean containsID(MBaseRef ref,
MBaseID id)
throws MBaseException
MBaseRef.getCanonicalID(org.activemath.abstractcontent.MBaseID) on the indicated MBaseRef returning true
if no exception was thrown or false if one was.
Note that if the provided MBaseRef is down this method simply returns false
which may be a non-desired effect. To remedy this we should either have a method containsID
in MBaseRef or have a better exception treatment with a qualified one being NoSuchIDException
.
ref - the MBaseRef to callid - the ID to request
true if the MBaseRef contains the
ID.
MBaseException - if the MBaseRef had a trouble
MBaseItemNotFoundException - never (returns false instead
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
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||