Class IndexFunction

  extended by org.mmbase.util.functions.FunctionProvider
      extended by org.mmbase.util.functions.IndexFunction

public class IndexFunction
extends FunctionProvider

The index node functions can be assigned to nodes which are connected by an 'index' relation. An index relation is an extension of 'posrel', but also has an 'index' and a 'root' field. These are used to calcaluate the 'number' of the connected nodes. The 'pos' field only serves to fix the order. The index field can be empty in which case the node with the lowest pos gets number 1, the following number 2 and so on. But on any one of the index relations the index can be stated explicitely. If e.g. the index is specified 'a' then the following node will be 'b'. You can also arrange for 'i', 'ii', 'iii', 'iv' and so on. The root field (a node-type field) specifies to which tree the relations belong. So principaly the same 'chapter' can exists with several different chapter numbers. Also, it is used to define where counting must starts, because the complete number of a chapter consists of a chain of numbers (like 2.3.4.iii). If the index is specified to be '-' then that means that it is explicitely empty. That cannot be '' or otherwise unfilled, because that means 'determin automaticly' already.

$Id: 35524 2009-05-29 13:40:17Z michiel $
Michiel Meeuwissen

Nested Class Summary
protected static class IndexFunction.Stack<C>
Field Summary
protected static NodeFunction<String> index
protected static Cache<String,String> indexCache
Fields inherited from class org.mmbase.util.functions.FunctionProvider
functions, getFunctions
Constructor Summary
Method Summary
static void main(String[] argv)
protected static String romanSuccessor(String index)
          Calculates the 'successor' of a roman number, preserving uppercase/lowercase.
static String successor(String index)
          Returns the 'successor' of a string.
protected static String successor(String index, String separator, String joiner, boolean roman)
          Calculates the 'successor' of an index String.
Methods inherited from class org.mmbase.util.functions.FunctionProvider
addFunction, createParameters, getFunction, getFunctions, getFunctionValue, newFunctionInstance
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


protected static Cache<String,String> indexCache


protected static NodeFunction<String> index
Constructor Detail


public IndexFunction()
Method Detail


public static String successor(String index)
Returns the 'successor' of a string. Which means that e.g. after 'zzz' follows 'aaaa'.


protected static String romanSuccessor(String index)
Calculates the 'successor' of a roman number, preserving uppercase/lowercase.


protected static String successor(String index,
                                  String separator,
                                  String joiner,
                                  boolean roman)
Calculates the 'successor' of an index String. Like '7.4.iii' of which the successor is '7.4.iv'.

index - The string to succeed
separator - Regular expression to split up the string first (e.g. "\\.")
joiner - String to rejoin it again (e.g. ".")
roman - Whether to consider roman numbers


public static void main(String[] argv)

MMBase 2.0-SNAPSHOT - null