public interface ReferenceManager extends PageFilter, InternalModule, WikiEventListener
Based on this information, we can perform non-optimal searches for e.g. unreferenced pages, top ten lists, etc.
The owning class must take responsibility of filling in any pre-existing information, probably by loading each and every WikiPage and calling this class to update the references when created.
| Modifier and Type | Method and Description |
|---|---|
void |
clearPageEntries(java.lang.String pagename)
Clears the references to a certain page so it's no longer in the map.
|
java.util.Set<java.lang.String> |
findCreated()
Returns a list of all pages that the ReferenceManager knows about.
|
java.util.Set<java.lang.String> |
findReferredBy(java.lang.String pageName)
Returns all pages that refer to this page.
|
java.util.Set<java.lang.String> |
findReferrers(java.lang.String pagename)
Find all pages that refer to this page.
|
java.util.Collection<java.lang.String> |
findRefersTo(java.lang.String pageName)
Returns all pages that this page refers to.
|
java.util.Collection<java.lang.String> |
findUncreated()
Finds all references to non-existant pages.
|
java.util.Collection<java.lang.String> |
findUnreferenced()
Finds all unreferenced pages.
|
void |
initialize(java.util.Collection<Page> pages)
Initializes the entire reference manager with the initial set of pages from the collection.
|
void |
pageRemoved(Page page)
Updates the m_referedTo and m_referredBy hashmaps when a page has been deleted.
|
java.util.Collection<java.lang.String> |
scanWikiLinks(Page page,
java.lang.String pagedata)
Reads a WikiPageful of data from a String and returns all links internal to this Wiki in a Collection.
|
void |
updateReferences(Page page)
Updates all references for the given page.
|
void |
updateReferences(java.lang.String page,
java.util.Collection<java.lang.String> references)
Updates the referred pages of a new or edited WikiPage.
|
destroy, initialize, postSave, postTranslate, preSave, preTranslateactionPerformedvoid initialize(java.util.Collection<Page> pages) throws ProviderException
pages - A collection of all pages you want to be included in the reference count.ProviderException - If reading of pages fails.java.util.Collection<java.lang.String> scanWikiLinks(Page page, java.lang.String pagedata)
page - The WikiPage to scanpagedata - The page contentsvoid pageRemoved(Page page)
Within the m_refersTo map the pagename is a key. The whole key-value-set has to be removed to keep the map clean. Within the m_referredBy map the name is stored as a value. Since a key can have more than one value we have to delete just the key-value-pair referring page:deleted page.
page - Name of the page to remove from the maps.void updateReferences(Page page)
page - wiki page for which references should be updatedvoid updateReferences(java.lang.String page, java.util.Collection<java.lang.String> references)
This is the method to call when a new page has been created and we want to a) set up its references and b) notify the referred pages of the references. Use this method during run-time.
page - Name of the page to update.references - A Collection of Strings, each one pointing to a page this page references.void clearPageEntries(java.lang.String pagename)
pagename - Name of the page to clear references for.java.util.Collection<java.lang.String> findUnreferenced()
java.util.Collection<java.lang.String> findUncreated()
Returns a Collection containing Strings of unreferenced page names. Each non-existant page name is shown only once - we don't return information on who referred to it.
java.util.Set<java.lang.String> findReferrers(java.lang.String pagename)
pagename - The page to find referrers for.java.util.Set<java.lang.String> findReferredBy(java.lang.String pageName)
The advantages of using this method over findReferrers() is that it is very fast, as it does not create a new object. The disadvantages are that it does not do any mapping between plural names, and you may end up getting a ConcurrentModificationException.
pageName - Page name to query.java.util.Collection<java.lang.String> findRefersTo(java.lang.String pageName)
The Collection returned is unmutable, so you cannot change it. It does reflect the current status and thus is a live object. So, if you are using any kind of an iterator on it, be prepared for ConcurrentModificationExceptions.
The returned value is a Collection, because a page may refer to another page multiple times.
pageName - Page name to queryjava.util.Set<java.lang.String> findCreated()
Copyright (c) 2001-2022 The Apache Software Foundation. All rights reserved.