org.activemath.presentation.preproc
Class RefEncoderTask

java.lang.Object
  extended by org.activemath.presentation.preproc.RefEncoderTask
All Implemented Interfaces:
Task

public class RefEncoderTask
extends Object
implements Task

This tasks applies an escaping of characters on all declared id values and references so that they can be used in the middle of URLs and URL parameters.

Version:

Field Summary
static String CVS_ID
           
static boolean DEBUG
           
static TaskFactory factory
           
static Task soleInstance
           
protected static Logger thisLogCat
           
 
Constructor Summary
RefEncoderTask()
           
 
Method Summary
 void close()
          Invoked by the pre-processor at the end of PreProcessor.run(org.jdom.Element, java.util.Map).
static String deEscape(String s)
           
static void escapeAtt(org.jdom.Attribute att)
          Escapes the attribute value given so that it can be a part of a URL parameter.
static TaskFactory giveFactory()
          Simply returns the same factory which, itself, returns the only task instance as this task is purely functional.
static void makeSureIDAttIsAbsolute(org.jdom.Attribute att)
           
static void makeSureRefAttIsAbsolute(org.jdom.Attribute att)
           
 void open()
          Invoked by the pre-processor at the beginning of PreProcessor.run(org.jdom.Element, java.util.Map).
 boolean perform(ListIterator listIt, org.jdom.Element elt, Map properties)
          Invoked by the pre-processor on an element elt to be processed by the task.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CVS_ID

public static final String CVS_ID
See Also:
Constant Field Values

thisLogCat

protected static Logger thisLogCat

DEBUG

public static final boolean DEBUG

factory

public static final TaskFactory factory

soleInstance

public static final Task soleInstance
Constructor Detail

RefEncoderTask

public RefEncoderTask()
Method Detail

giveFactory

public static TaskFactory giveFactory()
Simply returns the same factory which, itself, returns the only task instance as this task is purely functional.


open

public void open()
Description copied from interface: Task
Invoked by the pre-processor at the beginning of PreProcessor.run(org.jdom.Element, java.util.Map).

Specified by:
open in interface Task

close

public void close()
Description copied from interface: Task
Invoked by the pre-processor at the end of PreProcessor.run(org.jdom.Element, java.util.Map).

Specified by:
close in interface Task

perform

public boolean perform(ListIterator listIt,
                       org.jdom.Element elt,
                       Map properties)
Description copied from interface: Task
Invoked by the pre-processor on an element elt to be processed by the task.

Modifications like replacing, removing or adding an element to the parent of elt should only be performed using the currentPos list-iterator (and, as of this writing, such an operation would fail with JDOM b7 unless your element objects are OJElements. This will be fixed in further release of JDOM).

A task performance should not throw an exception unless the task cannot continue walking the subelements.

Specified by:
perform in interface Task
Parameters:
listIt - the iterator of all elements child of the same parent, currently enumerating this element may be null in which case the parent was not enumerated (i.e. when elt is the element called on PreProcessor.run(org.jdom.Element, java.util.Map).
elt - the element to process
properties - An object that lives during the performance and can be used to extract and store states and parameters for the processing action. Typical values include the user and session (as string in keys and value). Properties are passed at startup (i.e. in TaskFactory.make(org.jdom.Element, java.util.Map) and at each perform, they are the same object throughout.

escapeAtt

public static final void escapeAtt(org.jdom.Attribute att)
Escapes the attribute value given so that it can be a part of a URL parameter. Currently simply apply path-encoding (as in org.activemath.Utilities, maybe later a simple escape of "/"


makeSureIDAttIsAbsolute

public static final void makeSureIDAttIsAbsolute(org.jdom.Attribute att)

makeSureRefAttIsAbsolute

public static final void makeSureRefAttIsAbsolute(org.jdom.Attribute att)

deEscape

public static final String deEscape(String s)