com.ibm.wbi.protocol.http.beans
Class LinkAnnotationEditor
com.ibm.wbi.Meg
|
+--com.ibm.wbi.Editor
|
+--com.ibm.wbi.protocol.http.HttpEditor
|
+--com.ibm.wbi.protocol.http.beans.LinkAnnotationEditor
- public abstract class LinkAnnotationEditor
- extends HttpEditor
An abstract Editor that modifies an HTML document by editing the information
in the links. The extender of this class needs to implement the editLink(LinkInfo)
method. The MaxLinksToEditPerPage property can be set to specify the maximum number
of links that should be edited on a single page. This property can be used to
limit the amount of computation that is performed on a single page. If the property
is set to -1 (the default) then all of the links of the page will be edited.
|
Field Summary |
static java.lang.String |
COPYRIGHT
IBM copyright information |
| Methods inherited from class com.ibm.wbi.Meg |
forwardRequest, getCondition, getEnabled, getMegProperty, getMegProperty, getMegPropertyKeys, getName, getPlugin, getPriority, getSystemContext, initialize, initialize, isEnabled, isMegApplicable, loadMegResources, run, setCondition, setEnabled, setMegProperty, setName, setPriority, setSystemContext, setup, setup, setup, setup |
COPYRIGHT
public static final java.lang.String COPYRIGHT
- IBM copyright information
LinkAnnotationEditor
public LinkAnnotationEditor()
- default constructor. Sets the MaxLinksToEditPerPage property to -1 (edit all links)
LinkAnnotationEditor
public LinkAnnotationEditor(java.lang.String encoding)
- Allow the user to specify the encoding
BUGBUG should we have this method??
setMaxLinksToEditPerPage
public void setMaxLinksToEditPerPage(int max)
- set the MaxLinksToEditPerPage property. After the specified number of links
have been edited, the rest of the links will pass through without editing.
Set to -1 to edit all of the links on the page.
- Parameters:
max - the maximum number of links to edit on a single page
getMaxLinksToEditPerPage
public int getMaxLinksToEditPerPage()
- Access the MaxLinksToEditPerPage property.
- Returns:
- Maximum links to edit per page.
handleRequest
public void handleRequest(RequestEvent e)
throws RequestRejectedException,
java.io.IOException
- the method used by WBI to edit the document.
Note that this method does not alter documents if they have a response
code other than 200 (Ok). It does not check to ensure that the document
is truly HTML and may mangle other document types. It successively calls
editLink(LinkInfo) on each link of the page until the MaxLinksToEditPerPage
value is reached or the editLink(LinkInfo) method throws a
NoMoreEditingException.
- Overrides:
handleRequest in class HttpEditor
- Parameters:
e - Request event object.- Throws:
RequestRejectedException - if the HTTP response code is different than 200.
editLink
protected abstract void editLink(LinkAnnotationEditor.LinkInfo linkInfo)
throws LinkAnnotationEditor.NoMoreEditingException
- Extender of this class should supply this method.
Each link of a document will be converted into a LinkInfo object and
passed to this method. The extender of this class should write
a method which then modifies the link in the desired way, i.e.
change the link text, add annotations before and after the link, etc.
- Parameters:
linkInfo - On entry this contains the information for the current
link, including the link HTMLItem itself, the link text (everything
between the and tags, and the URL being linked to. The
preLink and postLink fields are initially null.
This method is allowed to modify any of the information in this object.
(Note that changes to the linkURL do not affect the results, if the
target URL should be changed, replace the linkTag field with an appropriate
tag. If the linkTag is set to null, the anchor is removed from the text.
The preLink and postLink strings will be prepended and postpended
before and after any ... structure. Note that
the linkURL field may be 'null' if Java couldn't understand the URL
(i.e. if it were a news://... link)