You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/09/09 13:20:10 UTC

[10/15] cut down the included source code from javolution (no more OSGi dependencies) and updated NOTICE and LICENSE files in source root

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/test/Perfometer.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/test/Perfometer.java b/commons/marmotta-commons/src/ext/java/javolution/test/Perfometer.java
deleted file mode 100644
index bd9707d..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/test/Perfometer.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.test;
-
-import javolution.context.LogContext;
-import javolution.lang.Configurable;
-import javolution.lang.MathLib;
-import javolution.text.TextBuilder;
-import javolution.util.FastTable;
-
-/**
- * <p> Utility class to measure the worst case execution time and average 
- *     execution time with high precision. Here an example measuring the 
- *     worst case execution time of {@link java.util.List#add(int, Object)}
- *     for diverse list implementations.</p>
- * [code]
- * Perfometer<Class<? extends List>> insertPerf = new Perfometer<>("java.util.List#add(int, Object)") {
- *     List<Object> list;
- *     Random random;
- *     protected void initialize() throws Exception {
- *          list = getInput().newInstance();
- *          random = new Random(-1); // Use seed to ensure same execution path.
- *     }
- *     protected void run(boolean measure) {
- *          Object obj = new Object();
- *          int i = random.nextInt(list.size() + 1);
- *          if (measure) list.add(i, obj);
- *     }
- *     protected void validate() { // Optional.
- *         assert list.size() == getNbrOfIterations();
- *     }
- * }
- * ...
- * public void testExecutionTime() {
- *     insertPerf.measure(java.util.ArrayList.class, 10000).print();
- *     insertPerf.measure(java.util.LinkedList.class, 10000).print();
- *     insertPerf.measure(javolution.util.FastTable.class, 10000).print();
- * }
- * ...
- * > [INFO] java.util.List#add(int, Object) (10000) for java.util.ArrayList:       590.21450 ns (avg), 8443.0000 ns (wcet#9369)
- * > [INFO] java.util.List#add(int, Object) (10000) for java.util.LinkedList:      4849.8313 ns (avg), 26536.000 ns (wcet#9863)
- * > [INFO] java.util.List#add(int, Object) (10000) for javolution.util.FastTable: 217.26300 ns (avg), 534.00000 ns (wcet#8864)
- * [/code]
- * 
- * @param <T> the perfometer input type.
- */
-public abstract class Perfometer<T> {
-
-    /**
-     * Hold the measurement duration in milliseconds (default 1000 ms).
-     */
-    public static final Configurable<Integer> DURATION_MS = new Configurable<Integer>() {
-
-        @Override
-        public String getName() { // Requires since there are multiple configurable fields.
-            return this.getClass().getEnclosingClass().getName()
-                    + "#DURATION_MS";
-        }
-
-        @Override
-        protected Integer getDefault() {
-            return 1000;
-        }
-
-    };
-    /**
-     * Indicates if perfometer measurements should be skipped (
-     * e.g. {@code -Djavolution.test.Perfometer#SKIP=true} to skip 
-     * performance measurements).
-     * When skipped, {@link #measure} and {@link #print} don't do anything.
-     */
-    public static final Configurable<Boolean> SKIP = new Configurable<Boolean>() {
-
-        @Override
-        public String getName() { // Requires since there are multiple configurable fields.
-            return this.getClass().getEnclosingClass().getName() + "#SKIP";
-        }
-
-        @Override
-        protected Boolean getDefault() {
-            return false;
-        }
-    };
-
-    private final String description;
-    private T input;
-    private long[] times; // Nano-Seconds.
-
-    /**
-     * Creates a perfometer having the specified description.
-     * 
-     * @param description the description of the code being measured. 
-     */
-    public Perfometer(String description) {
-        this.description = description;
-    }
-
-    /**
-     * Returns the average execution time in seconds.
-     */
-    public double getAvgTimeInSeconds() {
-        if (times == null) return Double.NaN;
-        long sum = 0;
-        for (long time : times) {
-            sum += time;
-        }
-        return sum / 1e9 / times.length;
-    }
-
-    /**
-     * Returns this perfometer description.
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Returns this perfometer current inputs.
-     */
-    public T getInput() {
-        return input;
-    }
-
-    /**
-     * Returns this perfometer current number of iterations performed.
-     */
-    public int getNbrOfIterations() {
-        return (times != null) ? times.length : 0;
-    }
-
-    /**
-     * Returns the execution times in seconds.
-     */
-    public double[] getTimesInSeconds() {
-        if (times == null) return new double[0];
-        double[] timesSec = new double[times.length];
-        for (int i=0; i < times.length; i++) {
-            timesSec[i] = times[i] / 1e9;
-        }
-        return timesSec;
-    }
-
-    /**
-     * Measures the worst case execution time and average execution time.
-     * 
-     * @param input the test input.
-     * @param nbrOfIterations the number of iterations performed on which 
-     *        the average will be calculated.
-     */
-    public Perfometer<T> measure(T input, int nbrOfIterations) {
-        if (SKIP.get()) return this; // Skip.
-        this.input = input;
-        this.times = new long[nbrOfIterations];
-        long[] calibrations = longArray(nbrOfIterations, Long.MAX_VALUE);
-        long[] measures = longArray(nbrOfIterations, Long.MAX_VALUE);
-        try {
-            long exitTime = System.currentTimeMillis() + DURATION_MS.get();
-            do {
-                // Calibration.
-                initialize();
-                for (int i = 0; i < nbrOfIterations; i++) {
-                    long start = System.nanoTime();
-                    run(false);
-                    long time = System.nanoTime() - start;
-                    calibrations[i] = MathLib.min(calibrations[i], time);
-                }
-                // Measurement.
-                initialize();
-                for (int i = 0; i < nbrOfIterations; i++) {
-                    long start = System.nanoTime();
-                    run(true);
-                    long time = System.nanoTime() - start;
-                    measures[i] = MathLib.min(measures[i], time);
-                }
-            } while (System.currentTimeMillis() < exitTime);
-            for (int i = 0; i < nbrOfIterations; i++) {
-                times[i] = measures[i] - calibrations[i];
-            }
-            return this;
-        } catch (Exception error) {
-            throw new RuntimeException("Perfometer Exception", error);
-        }
-    }
-
-    /**
-     * Outputs the result.
-     */
-    public void print() {
-        if (Perfometer.SKIP.get()) return;
-        TextBuilder txt = new TextBuilder();
-        txt.append(description).append(" (").append(getNbrOfIterations())
-                .append(") for ").append(input).append(": ");
-        while (txt.length() < 80)
-            txt.append(' ');
-        txt.append(getAvgTimeInSeconds() * 1E9, 8, false, true); // Nano-Seconds.
-        txt.append(" ns (avg), ");
-        txt.append(getWCETinSeconds() * 1E9, 8, false, true); // Nano-Seconds.
-        txt.append(" ns (wcet#").append(getWorstCaseNumber()).append(")");
-        LogContext.info(txt);
-    }
-
-    /**
-     * Outputs the measurements in nanoseconds.
-     */
-    public void printDetails() {
-        if (Perfometer.SKIP.get()) return;
-        FastTable<Long> measurements = new FastTable<Long>();
-        for (long time : times)
-            measurements.add(time);
-        LogContext.debug(measurements);
-    }
-
-    /**
-     * Returns the worst case execution time in seconds.
-     */
-    public double getWCETinSeconds() {
-        if (times == null) return Double.NaN;
-        long wcet = 0;
-        for (long time : times) {
-            if (time > wcet) wcet = time;
-        }
-        return wcet / 1e9;
-    }
-
-    /**
-     * Returns the iteration number having the slowest execution time.
-     */
-    public int getWorstCaseNumber() {
-        if (times == null) return -1;
-        long wcet = 0;
-        int j = -1;
-        for (int i=0; i < times.length; i++) {
-            if (times[i] > wcet) {
-                wcet = times[i];
-                j = i;   
-            }
-        }
-        return j;
-    }
-
-    /**
-     * Performs the initialization.
-     */
-    protected abstract void initialize() throws Exception;
-
-    /**
-     * Runs the code being benchmarked.
-     * 
-     * @param measure {@code false} when calibration is performed;
-     *        {@code true} otherwise. 
-     */
-    protected abstract void run(boolean measure) throws Exception;
-
-    /**
-     * Validates the final result (after all iterations are completed). 
-     */
-    protected void validate() {}
-
-    private long[] longArray(int length, long initialValue) {
-        long[] array = new long[length];
-        for (int i = 0; i < length; i++)
-            array[i] = initialValue;
-        return array;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/test/package-info.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/test/package-info.java b/commons/marmotta-commons/src/ext/java/javolution/test/package-info.java
deleted file mode 100644
index be22b58..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/test/package-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
-<p> Testing tools for validation and performance.</p>
- */
-package javolution.test;
-

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/text/CharArray.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/text/CharArray.java b/commons/marmotta-commons/src/ext/java/javolution/text/CharArray.java
deleted file mode 100644
index 320bd00..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/text/CharArray.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.text;
-
-import javolution.util.function.Equalities;
-
-/**
- * <p> A {@link CharSequence} backed up by a <code>char</code> array. 
- *     Instances of this class are
- *     typically used/reused to provide <code>CharSequence</code> views 
- *     over existing character buffers.</p>
- *     
- * <p> Instances of this classes have the following properties:<ul>
- * 
- *     <li> They support equality or lexical comparison with any
- *          <code>CharSequence</code> (e.g. <code>String</code>).</li>
- *          
- *     <li> They have the same hashcode than <code>String</code> and can be
- *          used to retrieve data from maps for which the keys are 
- *          <code>String</code> instances.</li>
- *          
- *     <li> They support fast conversions to primitive types 
- *          (e.g. {@link #toBoolean() Boolean}, {@link #toInt int}).</li>
- *          
- *     </ul></p>
- * 
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 5.3, January 10, 2007
- */
-public final class CharArray implements CharSequence, Comparable<CharSequence> {
-
-    /**
-     * Holds the character array.
-     */
-    private char[] _array;
-
-    /**
-     * Holds the index of the first character.
-     */
-    private int _offset;
-
-    /**
-     * Holds the length of char sequence.
-     */
-    private int _length;
-
-    /**
-     * Default constructor (empty character array).
-     */
-    public CharArray() {
-        _array = NO_CHAR;
-    }
-
-    private static final char[] NO_CHAR = new char[0];
-
-    /**
-     * Creates a character array of specified default capacity.
-     * 
-     * @param capacity the backing array default capacity.
-     */
-    public CharArray(int capacity) {
-        _array = new char[capacity];
-    }
-
-    /**
-     * Creates a character array from the specified String.
-     * 
-     * @param string the string source.
-     */
-    public CharArray(String string) {
-        _array = string.toCharArray();
-        _length = string.length();
-    }
-
-    /**
-     * Returns the underlying array.
-     * 
-     * @return the underlying array.
-     */
-    public char[] array() {
-        return _array;
-    }
-
-    /**
-     * Returns the length of this character sequence.
-     *
-     * @return the number of characters (16-bits Unicode).
-     */
-    public int length() {
-        return _length;
-    }
-
-    /**
-     * Returns the offset of the first character in the underlying array.
-     *
-     * @return the offset of the first character.
-     */
-    public int offset() {
-        return _offset;
-    }
-
-    /**
-     * Sets the underlying array of this CharArray.
-     *
-     * @param offset the new offset.
-     * @param array the new underlying array.
-     * @param length the new length.
-     * @return <code>this</code>
-     */
-    public CharArray setArray(char[] array, int offset, int length) {
-        _array = array;
-        _offset = offset;
-        _length = length;
-        return this;
-    }
-
-    /**
-     * Returns the index within this character sequence of the first occurrence
-     * of the specified characters sequence searching forward.
-     *
-     * @param  csq a character sequence searched for.
-     * @return the index of the specified character sequence in the range
-     *         <code>[0, length()[</code>
-     *         or <code>-1</code> if the character sequence is not found.
-     */
-    public final int indexOf(java.lang.CharSequence csq) {
-        final char c = csq.charAt(0);
-        final int csqLength = csq.length();
-        for (int i = _offset, end = _offset + _length - csqLength + 1; i < end; i++) {
-            if (_array[i] == c) { // Potential match.
-                boolean match = true;
-                for (int j = 1; j < csqLength; j++) {
-                    if (_array[i + j] != csq.charAt(j)) {
-                        match = false;
-                        break;
-                    }
-                }
-                if (match) { return i - _offset; }
-            }
-        }
-        return -1;
-    }
-
-    /**
-     * Returns the index within this character sequence of the first occurrence
-     * of the specified character searching forward.
-     *
-     * @param  c the character to search for.
-     * @return the indext of the specified character in the range
-     *         <code>[0, length()[</code>
-     *         or <code>-1</code> if the character is not found.
-     */
-    public final int indexOf(char c) {
-        for (int i = _offset, end = _offset + _length; i < end; i++) {
-            if (_array[i] == c)
-                return i - _offset;
-        }
-        return -1;
-    }
-
-    /**
-     * Returns the <code>String</code> corresponding to this character
-     * sequence. The <code>String</code> returned is always allocated on the
-     * heap and can safely be referenced elsewhere.
-     *
-     * @return the <code>java.lang.String</code> for this character sequence.
-     */
-    @Override
-    public String toString() {
-        return new String(_array, _offset, _length);
-    }
-
-    /**
-     * Returns the hash code for this {@link CharArray}.
-     *
-     * <p> Note: Returns the same hashCode as <code>java.lang.String</code>
-     *           (consistent with {@link #equals})</p>
-     * @return the hash code value.
-     */
-    @Override
-    public int hashCode() {
-        int h = 0;
-        for (int i = 0, j = _offset; i < _length; i++) {
-            h = 31 * h + _array[j++];
-        }
-        return h;
-    }
-
-    /**
-     * Compares this character sequence against the specified object
-     * (<code>String</code> or <code>CharSequence</code>).
-     *
-     * @param  that the object to compare with.
-     * @return <code>true</code> if both objects represent the same sequence;
-     *         <code>false</code> otherwise.
-     */
-    @Override
-    public boolean equals(Object that) {
-        if (that instanceof String) {
-            return equals((String) that);
-        } else if (that instanceof CharArray) {
-            return equals((CharArray) that);
-        } else if (that instanceof java.lang.CharSequence) {
-            return equals((java.lang.CharSequence) that);
-        } else {
-            return false;
-        }
-    }
-
-    // Do not make public or String instances may not use equals(String)
-    private boolean equals(java.lang.CharSequence chars) {
-        if (chars == null)
-            return false;
-        if (this._length != chars.length())
-            return false;
-        for (int i = _length, j = _offset + _length; --i >= 0;) {
-            if (_array[--j] != chars.charAt(i))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Compares this character array against the specified {@link CharArray}.
-     *
-     * @param  that the character array to compare with.
-     * @return <code>true</code> if both objects represent the same sequence;
-     *         <code>false</code> otherwise.
-     */
-    public boolean equals(CharArray that) {
-        if (this == that)
-            return true;
-        if (that == null)
-            return false;
-        if (this._length != that._length)
-            return false;
-        final char[] thatArray = that._array;
-        for (int i = that._offset + _length, j = _offset + _length; --j >= _offset;) {
-            if (_array[j] != thatArray[--i])
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Compares this character array against the specified String.
-     * In case of equality, the CharArray keeps a reference to the 
-     * String for future comparisons.
-     * 
-     * @param  str the string  to compare with.
-     * @return <code>true</code> if both objects represent the same sequence;
-     *         <code>false</code> otherwise.
-     */
-    public boolean equals(String str) {
-        if (str == null)
-            return false;
-        if (_length != str.length())
-            return false;
-        for (int i = _length, j = _offset + _length; --i >= 0;) {
-            if (_array[--j] != str.charAt(i))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Compares this character array with the specified character
-     * sequence lexicographically.
-     *
-     * @param   seq the character sequence to be compared.
-     * @return  <code>{@link Equalities#LEXICAL}.compare(this, seq)</code>
-     * @throws  ClassCastException if the specifed object is not a
-     *          <code>CharSequence</code>.
-     */
-    public int compareTo(CharSequence seq) {
-        return Equalities.LEXICAL.compare(this, seq);
-    }
-
-    /**
-     * Returns the <code>boolean</code> represented by this character array.
-     *
-     * @return the corresponding <code>boolean</code> value.
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>boolean</code>.
-     */
-    public boolean toBoolean() {
-        return TypeFormat.parseBoolean(this);
-    }
-
-    /**
-     * Returns the decimal <code>int</code> represented by this character array.
-     *
-     * @return <code>toInt(10)</code>
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>int</code>.
-     */
-    public int toInt() {
-        return TypeFormat.parseInt(this);
-    }
-
-    /**
-     * Returns the <code>int</code> represented by this character array
-     * in the specified radix.
-     * 
-     * @param  radix the radix (e.g. <code>16</code> for hexadecimal).
-     * @return the corresponding <code>int</code> value.
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>int</code>.
-     */
-    public int toInt(int radix) {
-        return TypeFormat.parseInt(this, radix);
-    }
-
-    /**
-     * Returns the decimal <code>long</code> represented by this character 
-     * array.
-     *
-     * @return the corresponding <code>long</code> value.
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>long</code>.
-     */
-    public long toLong() {
-        return TypeFormat.parseLong(this);
-    }
-
-    /**
-     * Returns the decimal <code>long</code> represented by this character 
-     * array in the specified radix.
-     * 
-     * @param  radix the radix (e.g. <code>16</code> for hexadecimal).
-     * @return the corresponding <code>long</code> value.
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>long</code>.
-     */
-    public long toLong(int radix) {
-        return TypeFormat.parseLong(this, radix);
-    }
-
-    /**
-     * Returns the <code>float</code> represented by this character array.
-     *
-     * @return the corresponding <code>float</code> value.
-     * @return <code>TypeFormat.parseFloat(this)</code>
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>float</code>.
-     */
-    public float toFloat() {
-        return TypeFormat.parseFloat(this);
-    }
-
-    /**
-     * Returns the <code>double</code> represented by this character array.
-     *
-     * @return the corresponding <code>double</code> value.
-     * @throws NumberFormatException if this character sequence
-     *         does not contain a parsable <code>double</code>.
-     */
-    public double toDouble() {
-        return TypeFormat.parseDouble(this);
-    }
-
-    // Implements CharSequence
-    public char charAt(int index) {
-        if ((index < 0) || (index >= _length))
-            throw new IndexOutOfBoundsException("index: " + index);
-        return _array[_offset + index];
-    }
-
-    // Implements CharSequence
-    public java.lang.CharSequence subSequence(int start, int end) {
-        if ((start < 0) || (end < 0) || (start > end) || (end > this.length()))
-            throw new IndexOutOfBoundsException();
-        CharArray chars = new CharArray();
-        chars._array = _array;
-        chars._offset = _offset + start;
-        chars._length = end - start;
-        return chars;
-    }
-
-    // Implements CharSequence
-    public void getChars(int start, int end, char dest[], int destPos) {
-        if ((start < 0) || (end < 0) || (start > end) || (end > _length))
-            throw new IndexOutOfBoundsException();
-        System.arraycopy(_array, start + _offset, dest, destPos, end - start);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/text/CharSet.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/text/CharSet.java b/commons/marmotta-commons/src/ext/java/javolution/text/CharSet.java
deleted file mode 100644
index 414d758..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/text/CharSet.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.text;
-
-import javolution.lang.Immutable;
-import javolution.lang.MathLib;
-
-/**
- * <p> A set of characters (typically used for parsing purpose where it is 
- *     significantly faster than regular expressions for simple patterns).
- *     For example:
- * [code]
- * // Integration with Text.
- * Text number;
- * int exponentIndex = num.indexOfAny(CharSet.valueOf('e', 'E'));
- *     
- * // Integration with TextFormat.
- * public List<Integer> parse(CharSequence csq, Cursor cursor) {
- *     FastTable<Integer> numbers = FastTable.newInstance();
- *     while (cursor.skip(CharSet.WHITESPACES, csq)) {
- *         numbers.add(TypeFormat.parseInt(csq, cursor));
- *     }
- *     return numbers;
- * } [/code]</p>   
- * 
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 3.7, January 1, 2006
- */
-public final class CharSet implements Immutable<CharSet> {
-
-    /**
-     * Represents an empty character set.
-     */
-    public static final CharSet EMPTY = new CharSet(new long[0]);
-
-    /**
-     * Represents white spaces characters according to Java 
-     * (see {@link Character#isWhitespace(char)}).
-     */
-    public static final CharSet WHITESPACES = CharSet.valueOf(new char[] { 0x9,
-            0xA, 0xB, 0xC, 0xD, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x1680, 0x180E,
-            0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2008,
-            0x2009, 0x200A, 0x200B, 0x2028, 0x2029, 0x205F, 0x3000 });
-
-    /**
-     * Represents spaces characters according to Java 
-     * (see {@link Character#isSpaceChar(char)}).
-     */
-    public static final CharSet SPACES = CharSet.valueOf(new char[] { 0x20,
-            0xA0, 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004,
-            0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x2028,
-            0x2029, 0x202F, 0x205F, 0x3000 });
-
-    /**
-     * Represents ISO control  characters according to Java 
-     * (see {@link Character#isISOControl(char)}).
-     */
-    public static final CharSet ISO_CONTROLS = CharSet.valueOf(new char[] {
-            0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC,
-            0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-            0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x7F, 0x80, 0x81,
-            0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C,
-            0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
-            0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F });
-
-    /**
-     * Holds the containment mapping.  
-     */
-    private final long[] _mapping;
-
-    /**
-     * Creates a character set with the specified mapping.
-     * 
-     * @param mapping the character set mapping.
-     */
-    private CharSet(long[] mapping) {
-        _mapping = mapping;
-    }
-
-    /**
-     * Returns the character set holding the specified characters.
-     * 
-     * @param chars the characters contained by this character set.
-     * @return the corresponding character set.
-     */
-    public static CharSet valueOf(char... chars) {
-        int maxChar = 0;
-        for (int i = chars.length; --i >= 0;) {
-            if (chars[i] > maxChar) {
-                maxChar = chars[i];
-            }
-        }
-        CharSet charSet = new CharSet(new long[(maxChar >> 6) + 1]);
-        for (int i = chars.length; --i >= 0;) {
-            char c = chars[i];
-            charSet._mapping[c >> 6] |= 1L << (c & 63);
-        }
-        return charSet;
-    }
-
-    /**
-     * Returns the character set holding the characters in the specified 
-     * range.
-     * 
-     * @param first the first character.
-     * @param last the last character.
-     * @return the corresponding character set.
-     * @throws IllegalArgumentException if <code>first > last</code>
-     */
-    public static CharSet rangeOf(char first, char last) {
-        if (first > last)
-            throw new IllegalArgumentException(
-                    "first should be less or equal to last");
-        CharSet charSet = new CharSet(new long[(last >> 6) + 1]);
-        for (char c = first; c <= last; c++) {
-            charSet._mapping[c >> 6] |= 1L << (c & 63);
-        }
-        return charSet;
-
-    }
-
-    /**
-     * Indicates if the specified character is contained by this character set.
-     * 
-     * @param c the character to test.
-     * @return <code>true</code> if this character set contains the specified
-     *         character; <code>false</code> otherwise.
-     */
-    public boolean contains(char c) {
-        final int i = c >> 6;
-        return i < _mapping.length ? (_mapping[i] & (1L << (c & 63))) != 0
-                : false;
-    }
-
-    /**
-     * Equivalent to
-     * {@link #indexIn(java.lang.CharSequence, int) indexIn(csq, 0)}
-     *
-     * @param csq the character sequence to be searched.
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int indexIn(CharSequence csq) {
-        return indexIn(csq, 0);
-    }
-
-    /**
-     * Returns the first index in the specified character sequence of
-     * one of the character of this set.
-     *
-     * @param csq the character sequence to be searched.
-     * @param fromIndex the index to search from.
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int indexIn(CharSequence csq, int fromIndex) {
-        for (int i = fromIndex, n = csq.length(); i < n; i++) {
-            if (contains(csq.charAt(i)))
-                return i;
-        }
-        return -1;
-    }
-
-    /**
-     * Equivalent to {@link #indexIn(char[], int)  indexIn(chars, 0)}
-     *
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int indexIn(char[] chars) {
-        return indexIn(chars, 0);
-    }
-
-    /**
-     * Returns the first index in the specified character array of
-     * one of the character of this set.
-     *
-     * @param chars the character array to be searched.
-     * @param fromIndex the index to search from.
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int indexIn(char[] chars, int fromIndex) {
-        for (int i = fromIndex, n = chars.length; i < n; i++) {
-            if (contains(chars[i]))
-                return i;
-        }
-        return -1;
-    }
-
-    /**
-     * Equivalent to
-     * {@link #lastIndexIn(java.lang.CharSequence, int)
-     * lastIndexIn(csq, csq.length()-1)}
-     *
-     * @param csq the character sequence to be searched.
-     * @return the last index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int lastIndexIn(CharSequence csq) {
-        return lastIndexIn(csq, csq.length() - 1);
-    }
-
-    /**
-     * Returns the last index in the specified character sequence of
-     * one of the character of this set.
-     *
-     * @param csq the character sequence to be searched.
-     * @param fromIndex the index to search from (backward).
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int lastIndexIn(CharSequence csq, int fromIndex) {
-        for (int i = fromIndex; i >= 0; --i) {
-            if (contains(csq.charAt(i)))
-                return i;
-        }
-        return -1;
-    }
-
-    /**
-     * Equivalent to {@link #lastIndexIn(char[], int)
-     * lastIndexIn(chars, chars.length-1)}
-     *
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int lastIndexIn(char[] chars) {
-        return lastIndexIn(chars, chars.length - 1);
-    }
-
-    /**
-     * Returns the last index in the specified character array of
-     * one of the character of this set.
-     *
-     * @param chars the character array to be searched.
-     * @param fromIndex the index to search from (backward).
-     * @return the index in the specified character sequence or
-     *         <code>-1</code> if none found.
-     */
-    public int lastIndexIn(char[] chars, int fromIndex) {
-        for (int i = fromIndex; i >= 0; i--) {
-            if (contains(chars[i]))
-                return i;
-        }
-        return -1;
-    }
-
-    /**
-     * Returns the character set containing the characters from this 
-     * character set plus the characters from the character set specified.
-     * 
-     * @param that the set containing the characters to be added.
-     * @return <code>this + that</code>
-     */
-    public CharSet plus(CharSet that) {
-        if (that._mapping.length > this._mapping.length)
-            return that.plus(this);
-        CharSet result = this.copy();
-        for (int i = that._mapping.length; --i >= 0;) {
-            result._mapping[i] |= that._mapping[i];
-        }
-        return result;
-    }
-
-    /**
-     * Returns the character set containing the characters from this 
-     * character minus the characters from the character set specified.
-     * 
-     * @param that the set containing the character to be removed.
-     * @return <code>this - that</code>
-     */
-    public CharSet minus(CharSet that) {
-        CharSet result = this.copy();
-        for (int i = MathLib.min(this._mapping.length, that._mapping.length); --i >= 0;) {
-            result._mapping[i] &= ~that._mapping[i];
-        }
-        return result;
-    }
-
-    /**
-     * Returns the textual representation of this character set.
-     *  
-     * @return the textual representation.
-     */
-    @Override
-    public String toString() {
-        TextBuilder tb = new TextBuilder();
-        tb.append('{');
-        int length = _mapping.length << 6;
-        for (int i = 0; i < length; i++) {
-            if (this.contains((char) i)) {
-                if (tb.length() > 1) {
-                    tb.append(',');
-                    tb.append(' ');
-                }
-                tb.append('\'');
-                tb.append((char) i);
-                tb.append('\'');
-            }
-        }
-        tb.append('}');
-        return tb.toString();
-    }
-
-    /**
-     * Returns a copy of this character set.
-     */
-    private CharSet copy() {
-        CharSet charSet = new CharSet(new long[this._mapping.length]);
-        for (int i = _mapping.length; --i >= 0;) {
-            charSet._mapping[i] = _mapping[i];
-        }
-        return charSet;
-    }
-
-    @Override
-    public CharSet value() {
-        return this;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/text/Cursor.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/text/Cursor.java b/commons/marmotta-commons/src/ext/java/javolution/text/Cursor.java
deleted file mode 100644
index b27a9b4..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/text/Cursor.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.text;
-
-/**
- * <p> A parsing cursor over the characters read. Cursor
- *     allows for token iterations over any {@link CharSequence}.
- *     [code]
- *     String str = "this is a test";
- *     Cursor cursor = new Cursor();
- *     for (CharSequence token; (token=cursor.nextToken(str, ' '))!= null;)
- *            System.out.println(token); 
- *     [/code]
- *     Prints the following output:<pre>
- *        this
- *        is
- *        a
- *        test</pre>
- *     Cursors are typically used with {@link TextFormat} instances.
- *     [code]
- *     // Parses decimal number (e.g. "xxx.xxxxxExx" or "NaN")
- *     public Decimal parse(CharSequence csq, Cursor cursor) throws IllegalArgumentException {
- *         TextFormat<LargeInteger> largeIntegerFormat = TextContext.getFormat(LargeInteger.class);
- *         if (cursor.skip("NaN", csq))
- *             return Decimal.NaN;
- *         LargeInteger significand = LargeIntegerFormat.parse(csq, cursor);
- *         LargeInteger fraction = cursor.skip('.', csq) ? largeIntegerFormat.parse(csq, cursor) : LargeInteger.ZERO;
- *         int exponent = cursor.skip(CharSet.valueOf('E', 'e'), csq) ? TypeFormat.parseInt(csq, cursor) : 0;
- *         int fractionDigits = fraction.digitLength();
- *         return Decimal.valueOf(significand.E(fractionDigits).plus(fraction), exponent - fractionDigits);
- *     }
- *     [/code]
- * </p>
- *
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 5.4, November 19, 2009
- */
-public class Cursor {
-
-    /**
-     * Holds the index.
-     */
-    private int index;
-
-    /**
-     * Default constructor.
-     */
-    public Cursor() {}
-
-    /**
-     * Returns this cursor index.
-     *
-     * @return the index of the next character to parse.
-     */
-    public final int getIndex() {
-        return index;
-    }
-
-    /**
-     * Sets the cursor current index.
-     *
-     * @param i the index of the next character to parse.
-     */
-    public final void setIndex(int i) {
-        index = i;
-    }
-
-    /**
-     * Indicates if this cursor points to the end of the specified
-     * character sequence.
-     *
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>getIndex() &gt;= csq.length()</code>
-     */
-    public final boolean atEnd(CharSequence csq) {
-        return index >= csq.length();
-    }
-
-    /**
-     * Indicates if this cursor points to the specified character in the
-     * specified character sequence.
-     *
-     * @param c the character to test.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>csq.charAt(this.getIndex()) == c</code>
-     */
-    public final boolean at(char c, CharSequence csq) {
-        return index < csq.length() ? csq.charAt(index) == c : false;
-    }
-
-    /**
-     * Indicates if this cursor points to any of the specified character in the
-     * specified character sequence.
-     *
-     * @param charSet any of the character to test.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>csq.charAt(this.getIndex()) == c</code>
-     */
-    public final boolean at(CharSet charSet, CharSequence csq) {
-        return index < csq.length() ? charSet.contains(csq.charAt(index))
-                : false;
-    }
-
-    /**
-     * Indicates if this cursor points to the specified characters in the
-     * specified sequence.
-     *
-     * @param str the characters to test.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor points to the specified
-     *         characters; <code>false</code> otherwise.
-     */
-    public final boolean at(String str, CharSequence csq) {
-        int i = index;
-        int length = csq.length();
-        for (int j = 0; j < str.length();) {
-            if ((i >= length) || (str.charAt(j++) != csq.charAt(i++)))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns the current character at this cursor position.
-     *
-     * @param csq the character sequence iterated by this cursor.
-     * @return the current character this cursor points to.
-     * @throws IndexOutOfBoundsException if {@link #atEnd this.atEnd(csq)}
-     */
-    public final char currentChar(CharSequence csq) {
-        return csq.charAt(index);
-    }
-
-    /**
-     * Returns the next character at this cursor position.The cursor
-     * position is incremented by one.
-     *
-     * @param csq the character sequence iterated by this cursor.
-     * @return the next character this cursor points to.
-     * @throws IndexOutOfBoundsException if {@link #atEnd this.atEnd(csq)}
-     */
-    public final char nextChar(CharSequence csq) {
-        return csq.charAt(index++);
-    }
-
-    /**
-     * Moves this cursor forward until it points to a character
-     * different from the specified character.
-     *
-     * @param c the character to skip.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor has skipped at least one 
-     *         character;<code>false</code> otherwise (e.g. end of sequence
-     *         reached).
-     */
-    public final boolean skipAny(char c, CharSequence csq) {
-        int i = index;
-        int n = csq.length();
-        for (; (i < n) && (csq.charAt(i) == c); i++) {}
-        if (i == index)
-            return false; // Cursor did not moved.
-        index = i;
-        return true;
-    }
-
-    /**
-     * Moves this cursor forward until it points to a character
-     * different from any of the character in the specified set.
-     * For example: [code]
-     *  // Reads numbers separated by tabulations or spaces.
-     *  FastTable<Integer> numbers = new FastTable<Integer>();
-     *  while (cursor.skipAny(CharSet.SPACE_OR_TAB, csq)) {
-     *      numbers.add(TypeFormat.parseInt(csq, cursor));
-     *  }[/code]
-     *
-     * @param charSet the character to skip.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor has skipped at least one
-     *         character;<code>false</code> otherwise (e.g. end of sequence
-     *         reached).
-     */
-    public final boolean skipAny(CharSet charSet, CharSequence csq) {
-        int i = index;
-        int n = csq.length();
-        for (; (i < n) && charSet.contains(csq.charAt(i)); i++) {}
-        if (i == index)
-            return false; // Cursor did not moved.
-        index = i;
-        return true;
-    }
-
-    /**
-     * Moves this cursor forward only if at the specified character.
-     * This method is equivalent to:
-     * [code]
-     *     if (at(c, csq))
-     *          increment();
-     * [/code]
-     *
-     * @param c the character to skip.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor has skipped the specified
-     *         character;<code>false</code> otherwise.
-     */
-    public final boolean skip(char c, CharSequence csq) {
-        if (this.at(c, csq)) {
-            index++;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Moves this cursor forward only if at any of the specified character.
-     * This method is equivalent to:
-     * [code]
-     *     if (at(charSet, csq))
-     *          increment();
-     * [/code]
-     *
-     * @param charSet holding the characters to skip.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor has skipped any the specified
-     *         character;<code>false</code> otherwise.
-     */
-    public final boolean skip(CharSet charSet, CharSequence csq) {
-        if (this.at(charSet, csq)) {
-            index++;
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Moves this cursor forward only if at the specified string.
-     * This method is equivalent to:
-     * [code]
-     *     if (at(str, csq))
-     *          increment(str.length());
-     * [/code]
-     *
-     * @param str the string to skip.
-     * @param csq the character sequence iterated by this cursor.
-     * @return <code>true</code> if this cursor has skipped the specified
-     *        string;<code>false</code> otherwise (e.g. end of sequence
-     *         reached).
-     */
-    public final boolean skip(String str, CharSequence csq) {
-        if (this.at(str, csq)) {
-            index += str.length();
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Returns the subsequence from the specified cursor position not holding
-     * the specified character. For example:[code]
-     *    CharSequence csq = "This is a test";
-     *    for (CharSequence token; (token=cursor.nextToken(csq, ' '))!= null;) {
-     *        System.out.println(token); // Prints one word at a time.
-     *    }[/code]
-     *
-     * @param csq the character sequence iterated by this cursor.
-     * @param c the character being skipped.
-     * @return the subsequence not holding the specified character or
-     *         <code>null</code> if none.
-     */
-    public final CharSequence nextToken(CharSequence csq, char c) {
-        int n = csq.length();
-        for (int i = index; i < n; i++) {
-            if (csq.charAt(i) != c) {
-                int j = i;
-                for (; (++j < n) && (csq.charAt(j) != c);) {
-                    // Loop until j at the end of sequence or at specified character.
-                }
-                index = j;
-                return csq.subSequence(i, j);
-            }
-        }
-        index = n;
-        return null;
-    }
-
-    /**
-     * Returns the subsequence from the specified cursor position not holding
-     * any of the characters specified. For example:[code]
-     *    CharSequence csq = "This is a test";
-     *    for (CharSequence token; (token=cursor.nextToken(csq, CharSet.WHITESPACE))!= null;) {
-     *        System.out.println(token); // Prints one word at a time.
-     *    }[/code]
-     *
-     * @param csq the character sequence iterated by this cursor.
-     * @param charSet the characters being skipped.
-     * @return the subsequence not holding the specified character or
-     *         <code>null</code> if none.
-     */
-    public final CharSequence nextToken(CharSequence csq, CharSet charSet) {
-        int n = csq.length();
-        for (int i = index; i < n; i++) {
-            if (!charSet.contains(csq.charAt(i))) {
-                int j = i;
-                for (; (++j < n) && !charSet.contains(csq.charAt(j));) {
-                    // Loop until j at the end of sequence or at specified characters.
-                }
-                index = j;
-                return csq.subSequence(i, j);
-            }
-        }
-        index = n;
-        return null;
-    }
-
-    /**
-     * Returns the head of the specified character sequence until   
-     * this cursor position.
-     *
-     * @return the corresponding sub-sequence.
-     */
-    public final CharSequence head(CharSequence csq) {
-        return csq.subSequence(0, index);
-    }
-
-    /**
-     * Returns the tail of the specified character sequence starting at 
-     * this cursor position.
-     *
-     * @return the corresponding sub-sequence.
-     */
-    public final CharSequence tail(CharSequence csq) {
-        return csq.subSequence(index, csq.length());
-    }
-
-    /**
-     * Increments the cursor index by one.
-     *
-     * @return <code>this</code>
-     */
-    public final Cursor increment() {
-        return increment(1);
-    }
-
-    /**
-     * Increments the cursor index by the specified value.
-     *
-     * @param i the increment value.
-     * @return <code>this</code>
-     */
-    public final Cursor increment(int i) {
-        index += i;
-        return this;
-    }
-
-    /**
-     * Returns the string representation of this cursor.
-     *
-     * @return the index value as a string.
-     */
-    @Override
-    public String toString() {
-        return "Cursor: " + index;
-    }
-
-    /**
-     * Indicates if this cursor is equals to the specified object.
-     *
-     * @return <code>true</code> if the specified object is a cursor
-     *         at the same index; <code>false</code> otherwise.
-     */
-    @Override
-    public boolean equals(Object obj) {
-        if (obj == null)
-            return false;
-        if (!(obj instanceof Cursor))
-            return false;
-        return index == ((Cursor) obj).index;
-    }
-
-    /**
-     * Returns the hash code for this cursor.
-     *
-     * @return the hash code value for this object
-     */
-    @Override
-    public int hashCode() {
-        return index;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e60b1a9a/commons/marmotta-commons/src/ext/java/javolution/text/DefaultTextFormat.java
----------------------------------------------------------------------
diff --git a/commons/marmotta-commons/src/ext/java/javolution/text/DefaultTextFormat.java b/commons/marmotta-commons/src/ext/java/javolution/text/DefaultTextFormat.java
deleted file mode 100644
index 98cdc87..0000000
--- a/commons/marmotta-commons/src/ext/java/javolution/text/DefaultTextFormat.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
- * Copyright (C) 2012 - Javolution (http://javolution.org/)
- * All rights reserved.
- * 
- * Permission to use, copy, modify, and distribute this software is
- * freely granted, provided that this notice is preserved.
- */
-package javolution.text;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-
-/**
- * <p> Specifies the default text format of a class (for parsing/formatting). 
- *     The default format is typically used by the {@link Object#toString()}
- *     method and can be locally overridden in the scope of a   
- *     {@link javolution.text.TextContext TextContext}.</p>
- *     
- * [code]
- * @DefaultTextFormat(Complex.Cartesian.class) 
- * public class Complex {
- *     public String toString() { // Uses the default format unless locally overridden.
- *         return TextContext.toString(this);
- *     }
- *     public static Complex valueOf(CharSequence csq) {
- *         return TextContext.parse(csq, Complex.class);
- *     }
- *     public static class Cartesian extends TextFormat<Complex> { ... }
- *     public static class Polar extends TextFormat<Complex> { ... }
- * }
- * ...
- * TextContext ctx = TextContext.enter(); // Enters a local textual context.
- * try {
- *     ctx.setFormat(Complex.class, new Complex.Polar()); // Configure the local context.
- *     System.out.println(complexMatrix); // Displays complex numbers in polar coordinates.
- * } finally {
- *     ctx.exit(); // Exits local context (reverts to previous Cartesian format).
- * }[/code]
- *
- * @author  <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
- * @version 6.0, July 21, 2013
- */
-@Documented
-@Inherited
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface DefaultTextFormat {
-
-    /**
-     * Returns the default text format of the annotated class.
-     */
-    Class<? extends TextFormat<?>> value();
-
-}