jena-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a...@apache.org
Subject [07/11] jena git commit: JENA-923: Remove jena-arq files now in jena-base
Date Wed, 29 Apr 2015 12:04:40 GMT
http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/BitsLong.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/BitsLong.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/BitsLong.java
deleted file mode 100644
index e147033..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/BitsLong.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-// NB shifting is "mod 64" -- <<64 is a no-op (not a clear).
-// http://mindprod.com/jgloss/masking.html
-
-/** Utilities for manipulating a bit pattern which are held in a 64 bit long
- *  @see BitsInt
- *  (java.util.BitSet does not allow getting the pattern as a long) 
- */ 
-public final class BitsLong
-{
-    private BitsLong() {}
-
-    private static int LongLen = Long.SIZE ;
-    
-    /** Extract the value packed into bits start (inclusive) and finish (exclusive),
-     *  the value is returned the low part of the returned long.
-     *  The low bit is bit zero.
-     * @param bits
-     * @param start
-     * @param finish
-     * @return long
-     */ 
-    
-    public static final
-    long unpack(long bits, int start, int finish)
-    {
-        check(start, finish) ;
-        if ( finish == 0 ) return 0 ;
-        // Remove top bits by moving up.  Clear bottom bits by them moving down.
-        return (bits<<(LongLen-finish)) >>> ((LongLen-finish)+start) ;
-    }
-
-    /** Place the value into the bit pattern between start and finish
-     * and returns the new value.  Leaves other bits alone.
-     * @param bits
-     * @param value
-     * @param start
-     * @param finish
-     * @return long
-     */
-    public static final
-    long pack(long bits, long value, int start, int finish)
-    {
-        check(start, finish) ;
-        bits = clear$(bits, start, finish) ;
-        long mask = mask(start, finish) ;
-        bits = bits | ( (value<<start) & mask ) ;
-        return bits ;
-    }
-
-    /** Get bits from a hex string.
-     * 
-     * @param str
-     * @param startChar     Index of first character (counted from the left, string style). 
-     * @param finishChar    Index after the last character (counted from the left, string style).
-     * @return long
-     */
-    
-    public static final
-    long unpack(String str, int startChar, int finishChar)
-    {
-        String s = str.substring(startChar, finishChar) ;
-        return Long.parseLong(s, 16) ;
-    }
-
-    /** Set the bits specificied.
-     * 
-     * @param bits      Pattern
-     * @param bitIndex 
-     * @return          Modified pattern
-     */
-    public static final
-    long set(long bits, int bitIndex)
-    { 
-        check(bitIndex) ;
-        return set$(bits, bitIndex) ;
-    }
-
-    /** Set the bits from string (inc) to finish (exc) to one
-     * 
-     * @param bits      Pattern
-     * @param start     start  (inclusive)
-     * @param finish    finish (exclusive)
-     * @return          Modified pattern
-     */
-    public static final
-    long set(long bits, int start, int finish)
-    { 
-        check(start, finish) ;
-        return set$(bits, start, finish) ;
-    }
-
-    /** Test whether a bit is the same as isSet 
-     * @param bits      Pattern
-     * @param isSet     Test whether is set or not. 
-     * @param bitIndex  Bit index
-     * @return          Boolean
-     */
-    public static final
-    boolean test(long bits, boolean isSet, int bitIndex)
-    {
-        check(bitIndex) ;
-        return test$(bits, isSet, bitIndex) ;
-    }
-    
-    /** Test whether a bit is set 
-     * @param bits      Pattern
-     * @param bitIndex  Bit index
-     * @return          Boolean
-     */
-    public static final
-    boolean isSet(long bits, int bitIndex)
-    {
-        check(bitIndex) ;
-        return test$(bits, true, bitIndex) ;
-    }
-    
-    /** Test whether a range has a specific value or not   
-     * @param bits      Pattern
-     * @param value     Value to test for
-     * @param start     start  (inclusive)
-     * @param finish    finish (exclusive)
-     * @return          Boolean
-     */
-    public static final
-    boolean test(long bits, long value, int start, int finish)
-    {
-        check(start, finish) ;
-        return test$(bits, value, start, finish) ;
-    }
-    
-    /** Get the bits from start (inclusive) to finish (exclusive),
-     *  leaving them aligned in the long.  See also unpack, returns
-     *  the value found at that place.
-     *  @see #unpack(long, int, int)
-     *  @param bits
-     *  @param start
-     *  @param finish
-     *  @return lon     */
-    
-    public static final
-    long access(long bits, int start, int finish)
-    {
-        check(start, finish) ;
-        return access$(bits, start, finish) ; 
-    }
-    
-    /**
-     * Clear the bits specified.
-     *  @param bits
-     *  @param start
-     *  @param finish
-     *  @return long
-     */
-  public static final
-    long clear(long bits, int start, int finish)
-    {
-        check(start, finish) ;
-        return clear$(bits, start, finish) ;
-    }
-
-    /**
-     * Create a mask that has ones between bit positions start (inc) and finish (exc),
-     * and zeros elsewhere.
-     * @param start
-     * @param finish
-     * @return long
-     */
-    public static final
-    long mask(int start, int finish)
-    {
-        check(start, finish) ;
-        return mask$(start, finish) ;
-    }
-    
-    /**
-     * Create a mask that has zeros between bit positions start (inc) and finish (exc),
-     * and ones elsewhere
-     * @param start
-     * @param finish
-     * @return long
-     */
-    public static final
-    long maskZero(int start, int finish)
-    {
-        check(start, finish) ;
-        return maskZero$(start, finish) ;
-    }
-    
-    private static final
-    long clear$(long bits, int start, int finish)
-    {
-        long mask = maskZero$(start, finish) ;
-        bits = bits & mask ;
-        return bits ;
-    }
-
-    private static final
-    long set$(long bits, int bitIndex)
-    { 
-        long mask = mask$(bitIndex) ;
-        return bits | mask ;
-    }
-
-    private static final
-    long set$(long bits, int start, int finish)
-    { 
-        long mask = mask$(start, finish) ;
-        return bits | mask ;
-    }
-
-    private static
-    boolean test$(long bits, boolean isSet, int bitIndex)
-    {
-        return isSet == access$(bits, bitIndex) ;
-    }
-
-    private static
-    boolean test$(long bits, long value, int start, int finish)
-    {
-        long v = access$(bits, start, finish) ;
-        return v == value ;
-    }
-
-
-    
-    private static final
-    boolean access$(long bits, int bitIndex)
-    {
-        long mask = mask$(bitIndex) ;
-        return (bits & mask) != 0L ;
-    }
-    
-    private static final
-    long access$(long bits, int start, int finish)
-    {
-        // Two ways:
-//        long mask = mask$(start, finish) ;
-//        return bits & mask ;
-        
-        return ( (bits<<(LongLen-finish)) >>> (LongLen-finish+start) ) << start  ;
-    }
-    
-
-    private static final
-    long mask$(int bitIndex)
-    {
-        return 1L << bitIndex ;
-    }
-
-    private static final
-    long mask$(int start, int finish)
-    {
-    //        long mask = 0 ;
-    //        if ( finish == Long.SIZE )
-    //            // <<Long.SIZE is a no-op 
-    //            mask = -1 ;
-    //        else
-    //            mask = (1L<<finish)-1 ;
-        if ( finish == 0 )
-            // So start is zero and so the mask is zero.
-            return 0 ;
-
-        
-        long mask = -1 ;
-//        mask = mask << (LongLen-finish) >>> (LongLen-finish) ;      // Clear the top bits
-//        return mask >>> start << start ;                  // Clear the bottom bits
-        return mask << (LongLen-finish) >>> (LongLen-finish+start) << start ; 
-    }
-
-    private static final
-    long maskZero$(int start, int finish)
-    {
-
-        return ~mask$(start, finish) ;
-    }
-    
-    private static final
-    void check(long bitIndex)
-    {
-        if ( bitIndex < 0 || bitIndex >= LongLen ) throw new IllegalArgumentException("Illegal bit index: "+bitIndex) ;
-    }
-
-    private static final
-    void check(long start, long finish)
-    {
-        if ( start < 0 || start >= LongLen ) throw new IllegalArgumentException("Illegal start: "+start) ;
-        if ( finish < 0 || finish > LongLen ) throw new IllegalArgumentException("Illegal finish: "+finish) ;
-        if ( start > finish )  throw new IllegalArgumentException("Illegal range: ("+start+", "+finish+")") ;
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/ByteBufferLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/ByteBufferLib.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/ByteBufferLib.java
deleted file mode 100644
index c619fed..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/ByteBufferLib.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib ;
-
-import static java.lang.System.arraycopy ;
-
-import java.io.PrintStream ;
-import java.nio.ByteBuffer ;
-import java.util.Arrays ;
-
-public class ByteBufferLib {
-    public static boolean allowArray = true ;
-
-    private ByteBufferLib() {}
-
-    public static void fill(ByteBuffer bb, byte v) {
-        fill(bb, bb.position(), bb.limit(), v) ;
-    }
-
-    public static void fill(ByteBuffer bb, int start, int finish, byte v) {
-        for ( int i = start ; i < finish ; i++ )
-            bb.put(i, v) ;
-    }
-
-    public static String details(ByteBuffer byteBuffer) {
-        // Like ByteBuffer.toString but without the class.
-        return "[pos=" + byteBuffer.position() + " lim=" + byteBuffer.limit() + " cap=" + byteBuffer.capacity() + "]" ;
-    }
-
-    public static void print(ByteBuffer byteBuffer) {
-        print(System.out, byteBuffer) ;
-    }
-
-    public static void print(PrintStream out, ByteBuffer byteBuffer) {
-        byteBuffer = byteBuffer.duplicate() ;
-
-        out.printf("ByteBuffer[pos=%d lim=%d cap=%d]", byteBuffer.position(), byteBuffer.limit(), byteBuffer.capacity()) ;
-
-        // Print bytes.
-        int i = 0 ;
-        int maxBytes = 3 * 20 ;
-        for ( ; i < maxBytes && i < byteBuffer.limit() ; i++ ) {
-            if ( i % 20 == 0 )
-                out.println() ;
-            out.printf(" 0x%02X", byteBuffer.get(i)) ; // Does not move position
-        }
-        if ( i < byteBuffer.limit() ) {
-            if ( i % 24 == 0 )
-                out.println() ;
-            out.print(" ...") ;
-        }
-        // Print as 4-byte ints
-        // int maxSlots = 8 ;
-        // int i = 0 ;
-        // for ( ; i < maxSlots && 4*i < byteBuffer.limit() ; i++ )
-        // out.printf(" 0x%04X", byteBuffer.getInt(4*i)) ;
-        // if ( i < maxSlots )
-        // out.print(" ...") ;
-        out.println() ;
-    }
-
-    public static boolean sameValue(ByteBuffer bb1, ByteBuffer bb2) {
-        if ( bb1.capacity() != bb2.capacity() )
-            return false ;
-
-        for ( int i = 0 ; i < bb1.capacity() ; i++ )
-            if ( bb1.get(i) != bb2.get(i) )
-                return false ;
-        return true ;
-    }
-
-    /**
-     * Copy of a ByteBuffer - the contents are copied (unlike
-     * ByteBuffer.duplicate)
-     */
-    final public static ByteBuffer duplicate(ByteBuffer bb) {
-        ByteBuffer bb2 = ByteBuffer.allocate(bb.limit() - bb.position()) ;
-        int x = bb.position() ;
-        bb2.put(bb) ;
-        bb.position(x) ;
-
-        bb2.position(0) ;
-        bb2.limit(bb2.capacity()) ;
-        return bb2 ;
-    }
-
-    /** Copy from a byte buffer */
-    final public static byte[] bb2array(ByteBuffer bb, int start, int finish) {
-        byte[] b = new byte[finish - start] ;
-        bb2array(bb, start, finish, b) ;
-        return b ;
-    }
-
-    private static void bb2array(ByteBuffer bb, int start, int finish, byte[] b) {
-        for ( int j = 0, i = start ; i < finish ; i++ )
-            b[j] = bb.get(i) ;
-    }
-
-    // For non-array versions : beware of overlaps.
-    final public static void bbcopy(ByteBuffer bb, int src, int dst, int length, int slotLen) {
-        if ( src == dst )
-            return ;
-
-        if ( allowArray && bb.hasArray() ) {
-            acopyArray(bb, src, dst, length, slotLen) ;
-            return ;
-        }
-
-        if ( src < dst )
-            bbcopy1(bb, src, dst, length, slotLen) ;
-        else
-            bbcopy2(bb, src, dst, length, slotLen) ;
-    }
-
-    private final static void bbcopy1(ByteBuffer bb, int src, int dst, int length, int slotLen) {
-        int bDst = dst * slotLen ;
-        int bSrc = src * slotLen ;
-        int bLen = length * slotLen ;
-        // src < dst so top dst is not in the overlap : work backwards
-        for ( int i = bLen - 1 ; i >= 0 ; i-- )
-            bb.put(bDst + i, bb.get(bSrc + i)) ;
-    }
-
-    private final static void bbcopy2(ByteBuffer bb, int src, int dst, int length, int slotLen) {
-        int bDst = dst * slotLen ;
-        int bSrc = src * slotLen ;
-        int bLen = length * slotLen ;
-        // src > dst so dst[0] is not in the overlap
-        for ( int i = 0 ; i < bLen ; i++ )
-            bb.put(bDst + i, bb.get(bSrc + i)) ;
-    }
-
-    public final static void bbcopy(ByteBuffer bb1, int src, ByteBuffer bb2, int dst, int length, int slotLen) {
-        // Assume bb1 and bb2 are different and do not overlap.
-        if ( allowArray && bb1.hasArray() && bb2.hasArray() ) {
-            acopyArray(bb1, src, bb2, dst, length, slotLen) ;
-            return ;
-        }
-        // One or both does not have an array.
-
-        int bSrc = src * slotLen ;
-        int bDst = dst * slotLen ;
-        int bLen = length * slotLen ;
-
-        for ( int i = 0 ; i < bLen ; i++ )
-            bb2.put(bDst + i, bb1.get(bSrc + i)) ;
-    }
-
-    final public static void bbfill(ByteBuffer bb, int fromIdx, int toIdx, byte fillValue, int slotLen) {
-        if ( allowArray && bb.hasArray() ) {
-            afillArray(bb, fromIdx, toIdx, fillValue, slotLen) ;
-            return ;
-        }
-
-        int bStart = fromIdx * slotLen ;
-        int bFinish = toIdx * slotLen ;
-
-        for ( int i = bStart ; i < bFinish ; i++ )
-            bb.put(i, fillValue) ;
-    }
-
-    // To ArrayOps?
-
-    final private static void acopyArray(ByteBuffer bb, int src, int dst, int length, int slotLen) {
-        byte[] b = bb.array() ;
-
-        int offset = bb.arrayOffset() ;
-
-        int bSrc = src * slotLen ;
-        int bDst = dst * slotLen ;
-        int bLen = length * slotLen ;
-
-        arraycopy(b, offset + bSrc, b, offset + bDst, bLen) ;
-    }
-
-    final private static void acopyArray(ByteBuffer bb1, int src, ByteBuffer bb2, int dst, int length, int slotLen) {
-        byte[] b1 = bb1.array() ;
-        byte[] b2 = bb2.array() ;
-        int offset1 = bb1.arrayOffset() ;
-        int offset2 = bb2.arrayOffset() ;
-
-        int bSrc = src * slotLen ;
-        int bDst = dst * slotLen ;
-        int bLen = length * slotLen ;
-
-        arraycopy(b1, offset1 + bSrc, b2, offset2 + bDst, bLen) ;
-    }
-
-    final private static void afillArray(ByteBuffer bb, int fromIdx, int toIdx, byte fillValue, int slotLen) {
-        int offset = bb.arrayOffset() ;
-        int bStart = fromIdx * slotLen ;
-        int bFinish = toIdx * slotLen ;
-        Arrays.fill(bb.array(), bStart + offset, bFinish + offset, fillValue) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Bytes.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Bytes.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Bytes.java
deleted file mode 100644
index 789aeeb..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Bytes.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.io.UnsupportedEncodingException ;
-import java.nio.ByteBuffer ;
-import java.nio.CharBuffer ;
-import java.nio.charset.CharsetDecoder ;
-import java.nio.charset.CharsetEncoder ;
-import java.nio.charset.CoderResult ;
-
-/** Byte-oriented operations.  Packing and unpacking integers
- *  is in network order (Big endian - which is the preferred order in Java)
- *  {@link "http://en.wikipedia.org/wiki/Endianness"}
- */  
-
-public class Bytes
-{
-    private Bytes() {}
-    
-    /** Compare two byte arrays which may be of different lengths */ 
-    public static int compare(byte[] x1, byte[] x2)
-    {
-        int n = Math.min(x1.length, x2.length) ;
-        
-        for ( int i = 0 ; i < n ; i++ )
-        {
-            byte b1 = x1[i] ;
-            byte b2 = x2[i] ;
-            if ( b1 == b2 )
-                continue ;
-            // Treat as unsigned values in the bytes. 
-            return (b1&0xFF) - (b2&0xFF) ;  
-        }
-
-        return x1.length - x2.length ;
-    }
-
-    public static int compareByte(byte b1, byte b2)
-    {
-        return (b1&0xFF) - (b2&0xFF) ;  
-    }
-    
-    public static byte[] copyOf(byte[] bytes)
-    {
-        return copyOf(bytes, 0, bytes.length) ;
-    }
-    
-    public static byte[] copyOf(byte[] bytes, int start)
-    {
-        return copyOf(bytes, start, bytes.length-start) ;
-    }
-    
-    public static byte[] copyOf(byte[] bytes, int start, int length)
-    {
-        byte[] newByteArray = new byte[length] ;
-        System.arraycopy(bytes, start, newByteArray, 0, length) ;
-        return newByteArray ;
-    }
-    
-    final public static byte[] hexDigitsUC = {
-        '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' ,
-        '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' };
-
-    final public static byte[] hexDigitsLC = {
-        '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' ,
-        '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
-
-    /** Get an int from a byte array (network order)
-     * @param b Byte Array
-     */
-    public static final int getInt(byte[]b)
-    { return getInt(b, 0) ; }
-    
-    /** Get an int from a byte array (network order)
-     * @param b Byte Array
-     * @param idx Starting point of bytes 
-     */
-    public static final int getInt(byte[]b, int idx)
-    {
-        return assembleInt(b[idx+0],
-                           b[idx+1],
-                           b[idx+2],
-                           b[idx+3]) ;
-    }
-
-    /** Get a long from a byte array (network order)
-     * @param b Byte Array
-     */
-    public static final long getLong(byte[]b)
-    { return getLong(b, 0) ; }
-    
-    /** Get a long from a byte array (network order)
-     * @param b Byte Array
-     * @param idx Starting point of bytes 
-     */
-    public static final long getLong(byte[]b, int idx)
-    {
-        return assembleLong(b[idx+0],
-                            b[idx+1],
-                            b[idx+2],
-                            b[idx+3],
-                            b[idx+4],
-                            b[idx+5],
-                            b[idx+6],
-                            b[idx+7]) ;
-
-    }
-
-    /** Put an int into a byte array
-     * @param value The integer
-     * @param b byte array 
-     */
-    public static final void setInt(int value, byte[]b)
-    { setInt(value, b, 0) ; }
-    
-    /** Put an int into a byte array from a given position
-     * @param x The integer
-     * @param b byte array 
-     * @param idx starting point
-     */
-    public static final void setInt(int x, byte[]b, int idx)
-    {
-//        b[idx+0] = byte3(value) ;
-//        b[idx+1] = byte2(value) ;
-//        b[idx+2] = byte1(value) ;
-//        b[idx+3] = byte0(value) ;
-      b[idx+0] = (byte)((x >> 24)&0xFF) ;
-      b[idx+1] = (byte)((x >> 16)&0xFF);
-      b[idx+2] = (byte)((x >>  8)&0xFF);
-      b[idx+3] = (byte)(x &0xFF);
-
-    }
-    
-    
-    /** Put a long into a byte array
-     * @param value The integer
-     * @param b byte array 
-     */
-    public static final void setLong(long value, byte[]b)
-    { setLong(value, b, 0) ; }
-    
-    /** Put a long into a byte array from a given position
-     * @param value The integer
-     * @param b byte array 
-     * @param idx starting point
-     */
-    public static final void setLong(long value, byte[] b, int idx) {
-        int lo = (int)(value & 0xFFFFFFFFL) ;
-        int hi = (int)(value >>> 32) ;
-        setInt(hi, b, idx) ;
-        setInt(lo, b, idx + 4) ;
-    }
-
-    /** int to byte array */
-    public static byte[] packInt(int val) {
-        byte[] valBytes = new byte[Integer.SIZE / Byte.SIZE] ;
-        setInt(val, valBytes, 0) ;
-        return valBytes ;
-    }
-
-    /** long to byte array */
-    public static byte[] packLong(long val) {
-        byte[] valBytes = new byte[Long.SIZE / Byte.SIZE] ;
-        setLong(val, valBytes, 0) ;
-        return valBytes ;
-    }
-
-    /** Make an int order of args -- high to low */
-    static private int assembleInt(byte b3, byte b2, byte b1, byte b0) {
-        return ( ((b3 & 0xFF) << 24) |
-                 ((b2 & 0xFF) << 16) |
-                 ((b1 & 0xFF) <<  8) |
-                 ((b0 & 0xFF) <<  0)
-            );
-    }
-
-    /** Make a long order of args -- high to low */
-    static private Long assembleLong(byte b7, byte b6, byte b5, byte b4, byte b3, byte b2, byte b1, byte b0)
-    {
-        
-        return  (((long)b7 & 0xFF) << 56) |
-                (((long)b6 & 0xFF) << 48) |
-                (((long)b5 & 0xFF) << 40) |
-                (((long)b4 & 0xFF) << 32) |
-                (((long)b3 & 0xFF) << 24) |
-                (((long)b2 & 0xFF) << 16) |
-                (((long)b1 & 0xFF) <<  8) |
-                (((long)b0 & 0xFF) <<  0) ;
-    }
-
-    private static byte byte3(int x) { return (byte)(x >> 24); }
-    private static byte byte2(int x) { return (byte)(x >> 16); }
-    private static byte byte1(int x) { return (byte)(x >>  8); }
-    private static byte byte0(int x) { return (byte)(x >>  0); }
-
-    /** Return the UTF-8 bytes for a string */
-    public static byte[] string2bytes(String x) {
-        try {
-            return x.getBytes("UTF-8") ;
-        }
-        catch (UnsupportedEncodingException ex) {
-            // Impossible.
-            ex.printStackTrace() ;
-            return null ;
-        }
-    }
-    
-    /** Return the string for some UTF-8 bytes */
-    public static String bytes2string(byte[] x) {
-        try {
-            return new String(x, "UTF-8") ;
-        }
-        catch (UnsupportedEncodingException ex) {
-            // Impossible-ish.
-            ex.printStackTrace() ;
-            return null ;
-        }
-    }
-
-    /** Encode a string into a ByteBuffer : on return position is the end of the encoding */
-    public static int toByteBuffer(CharSequence s, ByteBuffer bb) {
-        //BlockUTF8.fromChars(s, bb) ;
-        CharsetEncoder enc = Chars.allocEncoder();
-        int x = toByteBuffer(s, bb, enc) ;
-        Chars.deallocEncoder(enc) ;
-        return x ;
-    }
-    
-    /** Encode a string into a ByteBuffer : on return position is the end of the encoding */
-    public static int toByteBuffer(CharSequence s, ByteBuffer bb, CharsetEncoder enc) {
-        int start = bb.position() ;
-        CharBuffer cBuff = CharBuffer.wrap(s);
-        enc.reset();
-        CoderResult r = enc.encode(cBuff, bb, true) ;
-        if ( r.isOverflow() )
-            throw new InternalErrorException("Bytes.toByteBuffer: encode overflow (1)") ;
-        r = enc.flush(bb) ;
-        if ( r.isOverflow() )
-            throw new InternalErrorException("Bytes.toByteBuffer: encode overflow (2)") ;
-//        if ( r.isUnderflow() )
-//            throw new InternalErrorException("Bytes.toByteBuffer: encode underflow") ;
-        int finish = bb.position() ;
-        return finish-start ;
-    }
-    
-    /** Decode a string into a ByteBuffer */
-    public static String fromByteBuffer(ByteBuffer bb)
-    {
-        //return BlockUTF8.toString(bb) ;
-        // To be removed (Dec 2011)
-        CharsetDecoder dec = Chars.allocDecoder();
-        String x = fromByteBuffer(bb, dec) ;
-        Chars.deallocDecoder(dec) ;
-        return x ;
-    }
-    
-    /** Decode a string into a ByteBuffer */
-    public static String fromByteBuffer(ByteBuffer bb, CharsetDecoder dec) {
-        if ( bb.remaining() == 0 )
-            return "" ;
-        dec.reset() ;
-        CharBuffer cBuff = CharBuffer.allocate(bb.remaining()) ;
-        CoderResult r = dec.decode(bb, cBuff, true) ;
-        if ( r.isOverflow() )
-            throw new InternalErrorException("fromByteBuffer: decode overflow (1)") ;
-        r = dec.flush(cBuff) ;
-        if ( r.isOverflow() )
-            throw new InternalErrorException("fromByteBuffer: decode overflow (2)") ;
-        cBuff.flip() ;
-        return cBuff.toString() ;
-    }
-
-    /**
-     * Return a hex string representing the bytes, zero padded to length of byte
-     * array.
-     */
-    public static String asHex(byte[] bytes) {
-        return asHexUC(bytes) ;
-    }
-
-    public static String asHexUC(byte[] bytes) {
-        return asHex(bytes, 0, bytes.length, Chars.hexDigitsUC) ;
-    }
-
-    public static String asHexLC(byte[] bytes) {
-        return asHex(bytes, 0, bytes.length, Chars.hexDigitsLC) ;
-    }
-
-    public static String asHex(byte[] bytes, int start, int finish, char[] hexDigits) {
-        StringBuilder sw = new StringBuilder() ;
-        for ( int i = start ; i < finish ; i++ ) {
-            byte b = bytes[i] ;
-            int hi = (b & 0xF0) >> 4 ;
-            int lo = b & 0xF ;
-            // if ( i != start ) sw.append(' ') ;
-            sw.append(hexDigits[hi]) ;
-            sw.append(hexDigits[lo]) ;
-        }
-        return sw.toString() ;
-    }
-    
-    /** Return a hex string representing the bytes, zero padded to length of byte array. */
-    public static String asHex(byte b)
-    {
-        return asHexUC(b) ; 
-    }
-
-    public static String asHexUC(byte b)
-    {
-        return asHex(b, Chars.hexDigitsUC) ; 
-    }
-
-    public static String asHexLC(byte b)
-    {
-        return asHex(b, Chars.hexDigitsLC) ; 
-    }
-    
-    private static String asHex(byte b, char[] hexDigits)
-    {
-        int hi = (b & 0xF0) >> 4 ;
-        int lo = b & 0xF ;
-        char[] chars = new char[2] ;
-        chars[0] = hexDigits[hi] ;
-        chars[1] = hexDigits[lo] ;
-        return new String(chars) ;
-    }
-
-    
-    public static int hexCharToInt(char c)
-    {
-        if ( '0' <= c && c <= '9' )   
-            return c-'0' ;
-        else if ( 'A' <= c && c <= 'F' )
-            return c-'A'+10 ;
-        else if ( 'a' <= c && c <= 'f' )
-            return c-'a'+10 ;
-        else
-            throw new IllegalArgumentException("Bad index char : "+c) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cache.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cache.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cache.java
deleted file mode 100644
index d7fa711..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cache.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Iterator ;
-import java.util.concurrent.Callable ;
-
-/** A cache */
-public interface Cache<Key, Value>
-{
-    
-    /** Does the cache contain the key? */
-    public boolean containsKey(Key key) ;
-    
-    /** Get from cache - or return null. */  
-    public Value getIfPresent(Key key) ;
-    
-    /** Get from cache, of not present, call the {@code callable}
-     *  to try to fill the cache.
-     */
-    public Value getOrFill(Key key, Callable<Value> callable) ;
-
-    /** Insert into the cache */
-    public void put(Key key, Value thing) ;
-
-    /** Remove from cache - return true if key referenced an entry */
-    public void remove(Key key) ;
-    
-    /** Iterate over all keys. Iteratering over the keys requires the caller be thread-safe. */ 
-    public Iterator<Key> keys() ;
-    
-    public boolean isEmpty() ;
-    public void clear() ;
-    
-    /** Current size of cache */
-    public long size() ;
-    
-    /** Register a callback - called when an object is dropped from the cache (optional operation) */ 
-    public void setDropHandler(ActionKeyValue<Key,Value> dropHandler) ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheFactory.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheFactory.java
deleted file mode 100644
index e913a9d..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheFactory.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib ;
-
-import org.apache.jena.atlas.lib.cache.* ;
-
-public class CacheFactory {
-    /**
-     * Create a cache which has space for up to a certain number of objects.
-     * This is an LRU cache, or similar.
-     * The cache returns null for a cache miss.
-     * The cache is thread-safe for single operations.
-     */
-    public static <Key, Value> Cache<Key, Value> createCache(int maxSize) {
-        return new CacheGuava<>(maxSize) ;
-    }
-
-    /** Create a null cache */
-    public static <Key, Value> Cache<Key, Value> createNullCache() {
-        return new Cache0<>() ;
-    }
-
-    /** Create a lightweight cache (e.g. slot replacement) */
-    public static <Key, Value> Cache<Key, Value> createSimpleCache(int size) {
-        return new CacheSimple<>(size) ;
-    }
-
-    /** One slot cache */
-    public static <Key, Value> Cache<Key, Value> createOneSlotCache() {
-        return new Cache1<>() ;
-    }
-
-    /**
-     * Create set-cache, rather than a map-cache.
-     * The cache is thread-safe for single operations.
-     * 
-     * @see Pool
-     */
-    public static <Obj> CacheSet<Obj> createCacheSet(int size) {
-        Cache<Obj, Object> c = createCache(size) ;
-        return new CacheSetImpl<Obj>(c) ;
-    }
-
-    /** Add a synchronization wrapper to an existing set-cache */
-    public static <Obj> CacheSet<Obj> createSync(CacheSet<Obj> cache) {
-        if ( cache instanceof CacheSetSync<? > )
-            return cache ;
-        return new CacheSetSync<>(cache) ;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheSet.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
deleted file mode 100644
index f5c3d22..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheSet.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import org.apache.jena.atlas.iterator.Action ;
-
-public interface CacheSet<T>
-{
-    public void add(T e) ;
-    public void clear() ;
-    public boolean contains(T obj) ;
-    public boolean isEmpty() ;
-//    public Iterator<T> iterator() ;
-    public void remove(T obj) ;
-    public long size() ;
-    /** Register a callback - called when an object is dropped from the cache (optional operation) */ 
-    public void setDropHandler(Action<T> dropHandler) ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheStats.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheStats.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheStats.java
deleted file mode 100644
index d71c1a0..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CacheStats.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-/** A cache with some readable statistics */ 
-public interface CacheStats<K,V> extends Cache<K,V>
-{
-    public long getCacheEntries() ;
-    public long getCacheHits() ;
-    public long getCacheMisses() ;
-    public long getCacheEjects() ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Callback.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Callback.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Callback.java
deleted file mode 100644
index d2f04f9..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Callback.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-public interface Callback<T>
-{
-    public void proc(T arg) ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cell.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cell.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cell.java
deleted file mode 100644
index 6910c0c..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Cell.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib ;
-
-
-/** Key-value slot, with chaining for lookup. */  
-public class Cell<K,V>
-{
-    private final Cell<K,V> previous ;
-    private final K key ;
-    private final V value ;
-
-    /** Create a slot with no key, value or parent - can be used a slot chain root */  
-    public Cell()               { this(null, null, null); }
-
-    public Cell(K key, V value) { this(key, value, null); }
-
-    private Cell(K key, V value, Cell<K, V> previous)
-    {
-        this.key = key ;
-        this.value = value ;
-        this.previous = previous ;
-    }
-
-    public Cell<K,V> extend(K key, V value)
-    {
-        return new Cell<>(key, value, this) ;
-    }
-    
-    public final V find(K k)
-    {
-        // Java, tail recursion, lack thereof.
-        Cell<K,V> slot = this ;
-
-        while (slot != null)
-        {
-            // Defend against null keys (e.g. the root of a slot chain). 
-            if ( k.equals(slot.key) )
-                return slot.value ;
-//            if ( previous == null )
-//              return null ;
-            slot = slot.previous ;
-        }
-        return null ;
-    }
-    
-      /* As it should be ... */
-//    public final V find(K k)
-//    {
-//        if ( k.equals(key) )
-//            return value ;
-//        if ( previous == null )
-//            return null ;
-//        return previous.find(k) ;
-//    }
-
-    private static final String sep = ", " ;
-    private void str(int level, StringBuilder acc)
-    {
-        if ( key == null && value == null )
-            return ;
-
-        if ( level != 0 )
-            acc.append(sep) ;
-        acc.append("(") ;
-        acc.append(key.toString()) ;
-        acc.append("->") ;
-        acc.append(value.toString()) ;
-        acc.append(")") ;
-        if ( previous != null )
-            previous.str(level+1, acc) ;
-    }
-
-    @Override
-    public String toString()
-    { 
-        StringBuilder sb = new StringBuilder() ;
-        sb.append("{ ") ;
-        str(0, sb) ;
-        sb.append(" }") ;
-        return sb.toString() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Chars.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Chars.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Chars.java
deleted file mode 100644
index 1d19f5c..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Chars.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.nio.charset.Charset ;
-import java.nio.charset.CharsetDecoder ;
-import java.nio.charset.CharsetEncoder ;
-import java.nio.charset.CodingErrorAction ;
-
-public class Chars
-{
-    private Chars() {}
-    
- // So also Bytes.hexDigits to get bytes.
-    final public static char[] digits10 = {
-        '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9'
-    } ;
-    
-    /** Hex digits : upper case **/ 
-    final public static char[] hexDigitsUC = {
-        '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' ,
-        '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' } ;
-
-    /** Hex digits : lower case **/ 
-    final public static char[] hexDigitsLC = {
-        '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' ,
-        '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' } ;
-
-    
-//         , 'g' , 'h' ,
-//        'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
-//        'o' , 'p' , 'q' , 'r' , 's' , 't' ,
-//        'u' , 'v' , 'w' , 'x' , 'y' , 'z'
-    
-    /** Java name for UTF-8 encoding */
-    private static final String encodingUTF8     = "utf-8" ;
-    /** Java name for ASCII encoding */
-    private static final String encodingASCII    = "ascii" ;
-    
-    public static final Charset charsetUTF8 = Charset.forName(encodingUTF8) ;
-    public static final Charset charsetASCII = Charset.forName(encodingASCII) ;
-    
-    // Pools for encoders/decoder.
-    // Better? use a ThreadLocal.
-    // Initial pool size. Any additional encoder/decoder are later
-    // placed in the pool - it's an infinite, reusing, growing pool.
-    
-    // Better?  If so, use these!
-    
-    private static final ThreadLocal<CharsetEncoder> threadCharsetEncoder =
-        new ThreadLocal<CharsetEncoder>() {
-        @Override protected CharsetEncoder initialValue() {
-            return createEncoder() ;
-        }
-    };
-
-    private static final ThreadLocal<CharsetDecoder> threadCharsetDecoder =
-        new ThreadLocal<CharsetDecoder>() {
-        @Override protected CharsetDecoder initialValue() {
-            return createDecoder() ;
-        }
-    };
-
-    /** Return a per-thread CharsetEncoder */ 
-    public static CharsetEncoder getThreadEncoder() { return threadCharsetEncoder.get() ; }
-
-    /** Return a per-thread CharsetDecoder */ 
-    public static CharsetDecoder getThreadDecoder() { return threadCharsetDecoder.get() ; }
-
-    private static final int PoolSize = 2 ;
-    private static Pool<CharsetEncoder> encoders = PoolSync.create(new PoolBase<CharsetEncoder>()) ;
-    private static Pool<CharsetDecoder> decoders = PoolSync.create(new PoolBase<CharsetDecoder>()) ;
-
-    static {
-        ThreadLocal<CharsetEncoder> t ;
-        
-        // Fill the pool.
-        for ( int i = 0 ; i < PoolSize ; i++ )
-        {
-            putEncoder(createEncoder()) ;
-            putDecoder(createDecoder()) ;
-        }
-    }
-    
-    /** Create a UTF-8 encoder */
-    public static CharsetEncoder createEncoder()    { return charsetUTF8.newEncoder() ; }
-    /** Create a UTF-8 decoder */
-    public static CharsetDecoder createDecoder()    { return charsetUTF8.newDecoder() ; }
-
-    /** Get a UTF-8 encoder from the pool (null if pool empty) */ 
-    public static CharsetEncoder getEncoder()       { return encoders.get() ; }
-    /** Add/return a UTF-8 encoder to the pool */
-    public static void putEncoder(CharsetEncoder encoder) { encoders.put(encoder) ; }
-
-    /** Get a UTF-8 decoder from the pool (null if pool empty) */ 
-    public static CharsetDecoder getDecoder()       { return decoders.get() ; }
-    /** Add/return a UTF-8 decoder to the pool */
-    public static void putDecoder(CharsetDecoder decoder) { decoders.put(decoder) ; }
-    
-    /** Allocate a CharsetEncoder, creating as necessary */
-    public static CharsetEncoder allocEncoder()
-    {
-        CharsetEncoder enc = Chars.getEncoder();
-        // Blocking finite Pool - does not happen.
-        // Plain Pool (sync wrapped) - might - allocate an extra one. 
-        if ( enc == null ) 
-            enc = Chars.createEncoder() ;
-        enc
-          .onMalformedInput(CodingErrorAction.REPLACE)
-          .onUnmappableCharacter(CodingErrorAction.REPLACE)
-          .reset() ;
-        
-        return enc ;
-    }
-    /** Deallocate a CharsetEncoder, may increase pool size */
-    public static void deallocEncoder(CharsetEncoder enc) { putEncoder(enc) ; }
-        
-    /** Allocate a CharsetDecoder, creating as necessary */
-    public static CharsetDecoder allocDecoder()
-    {
-        CharsetDecoder dec = Chars.getDecoder();
-        // Blocking finite Pool - does not happen.
-        // Plain Pool (sync wrapped) - might - allocate an extra one. 
-        if ( dec == null ) 
-            dec = Chars.createDecoder() ;
-        dec
-          .onMalformedInput(CodingErrorAction.REPLACE)
-          .onUnmappableCharacter(CodingErrorAction.REPLACE)
-          .reset() ;
-        
-        return dec ;
-    }
-    /** Deallocate a CharsetDecoder, may increase pool size */
-    public static void deallocDecoder(CharsetDecoder dec) { putDecoder(dec) ; }
-    
-
-    public static void encodeAsHex(StringBuilder buff, char marker, char ch)
-    {
-        if ( ch < 256 )
-        {
-            buff.append(marker) ;
-            int lo = ch & 0xF ;
-            int hi = (ch >> 4) & 0xF ;
-            buff.append(Chars.hexDigitsUC[hi]) ;                
-            buff.append(Chars.hexDigitsUC[lo]) ;
-            return ;
-        }
-        int n4 = ch & 0xF ;
-        int n3 = (ch >> 4) & 0xF ;
-        int n2 = (ch >> 8) & 0xF ;
-        int n1 = (ch >> 12) & 0xF ;
-        buff.append(marker) ;
-        buff.append(Chars.hexDigitsUC[n1]) ;                
-        buff.append(Chars.hexDigitsUC[n2]) ;
-        buff.append(marker) ;
-        buff.append(Chars.hexDigitsUC[n3]) ;
-        buff.append(Chars.hexDigitsUC[n4]) ;
-        
-    }
-
-    /** Is char in the array? */
-    public static boolean charInArray(int ch, char[] chars) {
-        for ( int xch : chars ) {
-            if ( ch == xch )
-                return true ;
-        }
-        return false ;
-    }
-
-    /** End of file - not a Unicode codepoint */
-    public static final int EOF             = -1 ;
-    // BOM  : U+FEFF encoded in bytes as xEF,0xBB,0xBF
-    public static final char BOM            = 0xFEFF ;  
-    
-    /** undefined character (exact meaning depends on use) - not a Unicode codepoint */
-    public static final int  UNSET           =  -2 ;
-    public static final char NL              = '\n' ;
-    public static final char CR              = '\r' ;
-    public static final char TAB             = '\t' ;
-    public static final char SPC             = ' ' ;
-    public static final char BSPACE          = '\b' ;
-    
-    public static final char CH_ZERO         =  (char)0 ;
-
-    public static final char CH_LBRACKET     = '[' ;
-    public static final char CH_RBRACKET     = ']' ;
-    
-    public static final char CH_LBRACE       = '{' ;
-    public static final char CH_RBRACE       = '}' ;
-
-    public static final char CH_LPAREN       = '(' ;
-    public static final char CH_RPAREN       = ')' ;
-
-    public static final char CH_LT           = '<' ;
-    public static final char CH_GT           = '>' ;
-    public static final char CH_UNDERSCORE   = '_' ;
-
-    public static final char CH_QUOTE1       = '\'' ;
-    public static final char CH_QUOTE2       = '"' ;
-
-    public static final char CH_EQUALS       = '=' ;
-    public static final char CH_STAR         = '*' ;
-    public static final char CH_DOT          = '.' ;
-    public static final char CH_COMMA        = ',' ;
-    public static final char CH_SEMICOLON    = ';' ;
-    public static final char CH_COLON        = ':' ;
-    public static final char CH_AMPHERSAND   = '&' ;
-    public static final char CH_AT           = '@' ;
-    public static final char CH_QMARK        = '?' ;
-    public static final char CH_HASH         = '#' ;
-    public static final char CH_PLUS         = '+' ;
-    public static final char CH_MINUS        = '-' ;
-    public static final char CH_DASH         = '-' ; // Alt name
-    public static final char CH_SLASH        = '/' ;
-    public static final char CH_RSLASH       = '\\' ;
-    public static final char CH_PERCENT      = '%' ;
-    
-    // Byte versions of the above
-    public static final byte B_NL            = NL ;
-    public static final byte B_CR            = CR ;
-    
-    public static final byte B_LBRACKET      = '[' ;
-    public static final byte B_RBRACKET      = ']' ;
-    
-    public static final byte B_LBRACE        = '{' ;
-    public static final byte B_RBRACE        = '}' ;
-
-    public static final byte B_LPAREN        = '(' ;
-    public static final byte B_RPAREN        = ')' ;
-
-    public static final byte B_LT            = '<' ;
-    public static final byte B_GT            = '>' ;
-    public static final byte B_UNDERSCORE    = '_' ;
-
-    public static final byte B_QUOTE1        = '\'' ;
-    public static final byte B_QUOTE2        = '"' ;
-
-    public static final byte B_EQUALS        = '=' ;
-    public static final byte B_STAR          = '*' ;
-    public static final byte B_DOT           = '.' ;
-    public static final byte B_COMMA         = ',' ;
-    public static final byte B_SEMICOLON     = ';' ;
-    public static final byte B_COLON         = ':' ;
-    public static final byte B_AT            = '@' ;
-    public static final byte B_AMPHERSAND    = '&' ;
-    public static final byte B_QMARK         = '?' ;
-    public static final byte B_HASH          = '#' ;
-    public static final byte B_PLUS          = '+' ;
-    public static final byte B_MINUS         = '-' ;
-    public static final byte B_DASH          = '-' ; // Alt name
-    public static final byte B_SLASH         = '/' ;
-    public static final byte B_RSLASH        = '\\' ;
-    public static final byte B_PERCENT       = '%' ;
-    
-
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Closeable.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Closeable.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Closeable.java
deleted file mode 100644
index 535717b..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Closeable.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-public interface Closeable
-{
-    public void close() ;
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
deleted file mode 100644
index 8bae6a4..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/CollectionUtils.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Collection ;
-import java.util.Iterator ;
-
-public class CollectionUtils
-{
-    static public <T> void removeNulls(Collection<T> list)
-    {
-        for ( Iterator<T> iter = list.iterator() ; iter.hasNext() ; )
-        {
-            T e = iter.next() ;
-            if ( e == null )
-                iter.remove() ;
-        }
-    }
-    
-    static public <T> boolean disjoint(Collection<T> c1, Collection<T> c2)
-    {
-        if ( c2.size() < c1.size() )
-        {
-            Collection<T> t = c1 ;
-            c1 = c2 ;
-            c2 = t ;
-        }
-        
-        for ( T t : c1 )
-        {
-            if ( c2.contains(t) )
-                return false ;
-        }
-        return true ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/ColumnMap.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/ColumnMap.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/ColumnMap.java
deleted file mode 100644
index 18db563..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/ColumnMap.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import static java.lang.String.format ;
-
-import java.util.Arrays ;
-import java.util.List ;
-
-import org.apache.jena.atlas.AtlasException ;
-
-
-
-/** General descriptor of a reordering (mapping) of columns in tuples to columns in indexes, 
- * for example, from triples to triple index order. 
- *
- * Naming: map is convert to the reordered form, fetch is get back.
- */
-public class ColumnMap
-{
-    // Map from tuple order to index order
-    // So SPO->POS is (0->2, 1->0, 2->1)
-    // i.e. the location of the element after mapping.  
-    private int[] insertOrder ;            
-    
-    // The mapping from index to tuple order
-    // For POS->SPO, is (0->1, 1->2, 2->0)
-    // i.e. the location to fetch the mapped element from. 
-    private int[] fetchOrder ;
-
-    private String label ;
-
-    /** Construct a column mapping that maps the input (one col, one char) to the output */  
-    public ColumnMap(String input, String output)
-    {
-        this(input+"->"+output, compileMapping(input, output)) ;
-    }
-    
-    public <T> ColumnMap(String label, List<T> input, List<T> output)
-    {
-        this(label, compileMapping(input, output)) ;
-    }
-    
-    public <T> ColumnMap(String label, T[] input, T[] output)
-    {
-        this(label, compileMapping(input, output)) ;
-    }
-    
-    /** Construct a column map - the elements are the 
-     * mappings of a tuple originally in the order 0,1,2,...
-     * so SPO->POS is 2,0,1 (SPO->POS so S->2, P->0, O->1)   
-     * and not 1,2,0 (which is the extraction mapping).
-     * The label is just a lable and is not interpretted.
-     */
-    public ColumnMap(String label, int...elements)
-    {
-        this.label = label ;
-
-        this.insertOrder = new int[elements.length] ;
-        System.arraycopy(elements, 0, elements, 0, elements.length) ;
-        Arrays.fill(insertOrder, -1) ;
-        
-        this.fetchOrder = new int[elements.length] ;
-        Arrays.fill(fetchOrder, -1) ;
-    
-        for ( int i = 0 ; i < elements.length ; i++ )
-        {
-            int x = elements[i] ;
-            if ( x < 0 || x >= elements.length)
-                throw new IllegalArgumentException("Out of range: "+x) ;
-            // Checking
-            if ( insertOrder[i] != -1 || fetchOrder[x] != -1 )
-                throw new IllegalArgumentException("Inconsistent: "+ListUtils.str(elements)) ;
-            
-            insertOrder[i] = x ;
-            fetchOrder[x] = i ;
-        }
-    }
-    
-    /** Length of mapping */
-    
-    public int length() { return fetchOrder.length ; }
-    
-    /** Apply to an <em>unmapped</em> tuple to get the i'th slot after mapping : SPO->POS : 0'th slot is P from SPO */
-    public <T> T fetchSlot(int idx, Tuple<T> tuple)
-    { 
-        idx = fetchOrder[idx] ;     // Apply the reverse mapping as we are doing zero is P, so it's an unmap.
-        return tuple.get(idx) ;
-    }
-
-    /** Apply to an <em>unmapped</em> tuple to get the i'th slot after mapping : SPO->POS : 0'th slot is P from SPO */
-    public <T> T fetchSlot(int idx, T[] tuple)
-    { 
-        idx = fetchOrder[idx] ;     // Apply the reverse mapping as we are doing zero is P, so it's an unmap.
-        return tuple[idx] ;
-    }
-    
-    /** Apply to a <em>mapped</em> tuple to get the i'th slot as it appears after mapping : SPO->POS : 0'th slot is S from POS */
-    public <T> T mapSlot(int idx, Tuple<T> tuple)
-    { 
-        idx = insertOrder[idx] ;
-        return tuple.get(idx) ;
-    }
-    
-    /** Apply to a <em>mapped</em> tuple to get the i'th slot as it appears after mapping : SPO->POS : 0'th slot is S from POS */
-    public <T> T mapSlot(int idx, T[] tuple)
-    { 
-        idx = insertOrder[idx] ;        // Yes - it's the insert location we want to access 
-        return tuple[idx] ;
-    }
-    
-    /** Get the index of the i'th slot as it appears after mapping : SPO->POS : 0'th slot is S from POS so 2->0 */
-    public int mapSlotIdx(int idx)
-    { 
-        return insertOrder[idx] ;        // Yes - it's the insert location we want to access 
-    }
-
-    /** Get the index of the i'th slot as it appears from a mapping : for SPO->POS : 0'th slot is P so 1->0 */
-    public int fetchSlotIdx(int idx)
-    { 
-        return fetchOrder[idx] ;        // Yes - it's the insert location we want to access 
-    }
-
-    /** Apply to an <em>unmapped</em> tuple to get a tuple with the column mapping applied */
-    public <T> Tuple<T> map(Tuple<T> src)
-    {
-        return map(src, insertOrder) ;
-    }
-
-    /** Apply to a <em>mapped</em> tuple to get a tuple with the column mapping reverse-applied */
-    public <T> Tuple<T> unmap(Tuple<T> src)
-    {
-        return map(src, fetchOrder) ;
-    }
-
-    private <T> Tuple<T> map(Tuple<T> src, int[] map)
-    {
-        @SuppressWarnings("unchecked")
-        T[] elts = (T[])new Object[src.size()] ;
-        
-        for ( int i = 0 ; i < src.size() ; i++ )
-        {
-            int j = map[i] ;
-            elts[j] = src.get(i) ;
-        }
-        return Tuple.create(elts) ;
-    }
-    
-    /** Compile a mapping encoded as single charcaters e.g. "SPO", "POS" */
-    static int[] compileMapping(String domain, String range)
-    {
-        List<Character> input = StrUtils.toCharList(domain) ;
-        List<Character> output = StrUtils.toCharList(range) ;
-        return compileMapping(input, output) ;
-    }
-
-    /** Compile a mapping, encoded two list, the domain and range of the mapping function  */
-    static <T> int[] compileMapping(T[] domain, T[] range)
-    {
-        return compileMapping(Arrays.asList(domain), Arrays.asList(range)) ;
-    }
-    
-    /** Compile a mapping */
-    static <T> int[] compileMapping(List<T> domain, List<T>range)
-    {
-        if ( domain.size() != range.size() )
-            throw new AtlasException("Bad mapping: lengths not the same: "+domain+" -> "+range) ; 
-        
-        int[] cols = new int[domain.size()] ;
-        boolean[] mapped = new boolean[domain.size()] ;
-        //Arrays.fill(mapped, false) ;
-        
-        for ( int i = 0 ; i < domain.size() ; i++ )
-        {
-            T input = domain.get(i) ;
-            int j = range.indexOf(input) ;
-            if ( j < 0 )
-                throw new AtlasException("Bad mapping: missing mapping: "+domain+" -> "+range) ;
-            if ( mapped[j] )
-                throw new AtlasException("Bad mapping: duplicate: "+domain+" -> "+range) ;
-            cols[i] = j ;
-            mapped[j] = true ;
-        }
-        return cols ;
-    }
-    
-    @Override
-    public String toString()
-    {
-        //return label ; 
-        return format("%s:%s%s", label, mapStr(insertOrder), mapStr(fetchOrder)) ;
-    }
-
-    private Object mapStr(int[] map)
-    {
-        StringBuilder buff = new StringBuilder() ;
-        String sep = "{" ;
-        
-        for ( int i = 0 ; i < map.length ; i++ )
-        {
-            buff.append(sep) ;
-            sep = ", " ; 
-            buff.append(format("%d->%d", i, map[i])) ;
-        }
-        buff.append("}") ;
-        
-        return buff.toString() ;
-    }
-
-    public String getLabel()
-    {
-        return label ;
-    }
-    
-    /** Reorder the letters of a string by the same rules as this column map (forward, map direction)*/ 
-    public String mapName(String word)
-    {
-        return mapString(word, insertOrder) ;
-    }
-    
-    /** Reorder the letters of a string by the same rules as this column map (backward, fetch direction) */ 
-    public String unmapName(String word)
-    {
-        return mapString(word, fetchOrder) ;
-    }
-    
-    // Map is get from i and put to j
-    private String mapString(String src, int[] map)
-    {
-        char[] chars = new char[src.length()] ;
-        for ( int i = 0 ; i < src.length() ; i++ )
-        {
-            int j = map[i] ;
-            chars[j] = src.charAt(i) ;
-        }
-        return new String(chars) ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/DS.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/DS.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/DS.java
deleted file mode 100644
index f9c7095..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/DS.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-
-import java.util.* ;
-
-public class DS
-{
-    private DS() {}
- 
-    public static <X> Set<X> setOfNone()            { return Collections.emptySet()  ; }
-    public static <X> Set<X> setOfOne(X element)    { return Collections.singleton(element) ; }
-    public static <X> Set<X> set()                  { return new HashSet<>(); }
-    public static <X> Set<X> set(int initialSize)   { return new HashSet<>(initialSize); }
-    public static <X> Set<X> set(Set<X> other)      { return new HashSet<>(other); }
-
-    public static <K, V> Map<K,V> mapOfNone()       { return Collections.emptyMap() ; }
-    public static <K, V> Map<K,V> mapOfOne(K key, V value) { return Collections.singletonMap(key, value) ; }
-    public static <K, V> Map<K,V> map()             { return new HashMap<>(); }
-    public static <K, V> Map<K,V> map(int initialSize) { return new HashMap<>(initialSize); }
-    public static <K, V> Map<K,V> map(Map<K,V> other) { return new HashMap<>(other); }
-
-    public static <T> List<T> listOfNone()          { return Collections.emptyList() ; }
-    public static <T> List<T> listOfOne(T element)  { return Collections.singletonList(element) ; }
-    public static <T> List<T> list()                { return new ArrayList<>(); }
-    public static <T> List<T> list(int initialSize) { return new ArrayList<>(initialSize); }
-    public static <T> List<T> list(List<T> other)   { return new ArrayList<>(other); }
-}

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/DateTimeUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/DateTimeUtils.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/DateTimeUtils.java
deleted file mode 100644
index b33a514..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/DateTimeUtils.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import java.util.Calendar ;
-import java.util.Date ;
-import java.util.GregorianCalendar ;
-
-import org.apache.commons.lang3.time.FastDateFormat ;
-
-public class DateTimeUtils {
-
-    // Include timezone (even xsd:dates have timezones; Calendars have timezones)
-    // NB in SimpleDateFormat != FastDateFormat
-    //  SimpleDateFormat does not format Calendars.
-    //  SimpleDateFormat has "X" for  ISO format tmezones (+00:00)  
-    //    FastDateFormat uses "ZZ" for this.
-    private static final FastDateFormat dateTimeFmt_display = FastDateFormat.getInstance("yyyy/MM/dd HH:mm:ss z") ;
-    private static final FastDateFormat dateFmt_yyyymmdd    = FastDateFormat.getInstance("yyyy-MM-ddZZ") ;
-    // For milliseconds == 0
-    private static final FastDateFormat dateTimeFmt_XSD_ms0     = FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ssZZ") ;
-    // For milliseconds != 0
-    private static final FastDateFormat dateTimeFmt_XSD_ms      = FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ss.SSSZZ") ;
-    // For milliseconds == 0
-    private static final FastDateFormat timeFmt_XSD_ms0         = FastDateFormat.getInstance("HH:mm:ssZZ") ;
-    // For milliseconds != 0
-    private static final FastDateFormat timeFmt_XSD_ms          = FastDateFormat.getInstance("HH:mm:ss.SSSZZ") ;
-
-    public static String nowAsXSDDateTimeString() {
-        return calendarToXSDDateTimeString(new GregorianCalendar()) ;
-    }
-
-    public static String todayAsXSDDateString() {
-        return calendarToXSDDateString(new GregorianCalendar()) ;
-    }
-
-    /** Return "now" as readable string (date in yyyy/MM/dd format) */
-    public static String nowAsString() {
-        return nowAsString(dateTimeFmt_display) ;
-    }
-
-    public static String nowAsString(String formatString) {
-        FastDateFormat df = FastDateFormat.getInstance(formatString) ;
-        return df.format(new Date()) ;
-    }
-
-    public static String nowAsString(FastDateFormat dateFormat) {
-        return dateFormat.format(new Date()) ;
-    }
-
-    private static boolean hasZeroMilliSeconds(Calendar cal) {
-        return ! cal.isSet(Calendar.MILLISECOND) || cal.get(Calendar.MILLISECOND) == 0 ;
-    }
-
-    // Canonical fom : if ms == 0, don't include in the string.
-    public static String calendarToXSDDateTimeString(Calendar cal) {
-        FastDateFormat fmt = hasZeroMilliSeconds(cal) 
-            ? dateTimeFmt_XSD_ms0 
-            : dateTimeFmt_XSD_ms ;
-        return calendarToXSDString(cal, fmt) ;
-    }
-
-    public static String calendarToXSDDateString(Calendar cal) {
-        return calendarToXSDString(cal, dateFmt_yyyymmdd) ;
-    }
-
-    // Canonical fom : if ms == 0, don't include in the string.
-    public static String calendarToXSDTimeString(Calendar cal) {
-        FastDateFormat fmt = hasZeroMilliSeconds(cal) 
-            ? timeFmt_XSD_ms0 
-            : timeFmt_XSD_ms ;
-        return calendarToXSDString(cal, fmt) ;
-    }
-
-    private static String calendarToXSDString(Calendar cal, FastDateFormat fmt) {
-        String lex = fmt.format(cal) ;
-        // lex = lex + calcTimezone(cal) ;
-        return lex ;
-    }
-
-    // Not needed because of FastDateFormat
-//    private static String calcTimezone(Calendar cal) {
-//        Date date = cal.getTime() ;
-//        TimeZone z = cal.getTimeZone() ;
-//        int tz = z.getRawOffset() ;
-//
-//        if ( z.inDaylightTime(date) ) {
-//            int tzDst = z.getDSTSavings() ;
-//            tz = tz + tzDst ;
-//        }
-//
-//        String sign = "+" ;
-//        if ( tz < 0 ) {
-//            sign = "-" ;
-//            tz = -tz ;
-//        }
-//
-//        int tzH = tz / (60 * 60 * 1000) ; // Integer divide towards zero.
-//        int tzM = (tz - tzH * 60 * 60 * 1000) / (60 * 1000) ;
-//
-//        String tzH_str = Integer.toString(tzH) ;
-//        String tzM_str = Integer.toString(tzM) ;
-//
-//        if ( tzH < 10 )
-//            tzH_str = "0" + tzH_str ;
-//        if ( tzM < 10 )
-//            tzM_str = "0" + tzM_str ;
-//        return sign + tzH_str + ":" + tzM_str ;
-//    }
-}
-

http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/EscapeStr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/EscapeStr.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/EscapeStr.java
deleted file mode 100644
index ede060c..0000000
--- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/EscapeStr.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.atlas.lib;
-
-import org.apache.jena.atlas.AtlasException ;
-import org.apache.jena.atlas.io.AWriter ;
-import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.io.OutputUtils ;
-
-/** Escape processing for strings */ 
-public class EscapeStr
-{
-
-    // Utility
-    /*
-     * Escape characters in a string according to Turtle rules. 
-     */
-    public static String stringEsc(String s)
-    { return stringEsc(s, true, false) ; }
-
-    private static String stringEsc(String s, boolean singleLineString, boolean asciiOnly)
-    {
-        IndentedLineBuffer sb = new IndentedLineBuffer() ;
-        stringEsc(sb, s, singleLineString, asciiOnly) ;
-        return sb.toString() ;
-    }
-
-    public static void stringEsc(AWriter out, String s, boolean singleLineString, boolean asciiOnly)
-    {
-        int len = s.length() ;
-        for (int i = 0; i < len; i++) {
-            char c = s.charAt(i);
-
-            // \\ Escape always possible.
-            if (c == '\\') 
-            {
-                out.print('\\') ;
-                out.print(c) ;
-                continue ;
-            }
-            if ( singleLineString )
-            {
-                if ( c == '"' )         { out.print("\\\""); continue ; }
-                else if (c == '\n')     { out.print("\\n");  continue ; }
-                else if (c == '\t')     { out.print("\\t");  continue ; }
-                else if (c == '\r')     { out.print("\\r");  continue ; }
-                else if (c == '\f')     { out.print("\\f");  continue ; }
-            }
-            // Not \-style esacpe. 
-            if ( c >= 32 && c < 127 )
-                out.print(c);
-            else if ( !asciiOnly )
-                out.print(c);
-            else
-            {
-                // Outside the charset range.
-                // Does not cover beyond 16 bits codepoints directly
-                // (i.e. \U escapes) but Java keeps these as surrogate
-                // pairs and will print as characters
-                out.print( "\\u") ;
-                OutputUtils.printHex(out, c, 4) ;
-            }
-        }
-    }
-
-    // Utilities to remove escapes
-
-    /** Replace \ escapes (\\u, \t, \n etc) in a string */
-    public static String unescapeStr(String s)
-    { return unescapeStr(s, '\\') ; }
-    
-    /** Replace \ escapes (\\u, \t, \n etc) in a string */
-    public static String unescapeStr(String s, char escapeChar)
-    { return unescape(s, escapeChar, false) ; }
-
-    // Main worker function for unescaping strings.
-    public static String unescape(String s, char escape, boolean pointCodeOnly) {
-        int i = s.indexOf(escape) ;
-        
-        if ( i == -1 )
-            return s ;
-        
-        // Dump the initial part straight into the string buffer
-        StringBuilder sb = new StringBuilder(s.substring(0,i)) ;
-        
-        for ( ; i < s.length() ; i++ )
-        {
-            char ch = s.charAt(i) ;
-
-            if ( ch != escape )
-            {
-                sb.append(ch) ;
-                continue ;
-            }
-                
-            // Escape
-            if ( i >= s.length()-1 )
-                throw new AtlasException("Illegal escape at end of string") ;
-            char ch2 = s.charAt(i+1) ;
-            i = i + 1 ;
-            
-            // \\u and \\U
-            if ( ch2 == 'u' )
-            {
-                // i points to the \ so i+6 is next character
-                if ( i+4 >= s.length() )
-                    throw new AtlasException("\\u escape too short") ;
-                int x = hex(s, i+1, 4) ;
-                sb.append((char)x) ;
-                // Jump 1 2 3 4 -- already skipped \ and u
-                i = i+4 ;
-                continue ;
-            }
-            if ( ch2 == 'U' )
-            {
-                // i points to the \ so i+6 is next character
-                if ( i+8 >= s.length() )
-                    throw new AtlasException("\\U escape too short") ;
-                int x = hex(s, i+1, 8) ;
-                // Convert to UTF-16 codepoint pair.
-                sb.append((char)x) ;
-                // Jump 1 2 3 4 5 6 7 8 -- already skipped \ and u
-                i = i+8 ;
-                continue ;
-            }
-            
-            // Are we doing just point code escapes?
-            // If so, \X-anything else is legal as a literal "\" and "X" 
-            
-            if ( pointCodeOnly )
-            {
-                sb.append('\\') ;
-                sb.append(ch2) ;
-                i = i + 1 ;
-                continue ;
-            }
-            
-            // Not just codepoints.  Must be a legal escape.
-            char ch3 = 0 ;
-            switch (ch2)
-            {
-                case 'n': ch3 = '\n' ;  break ; 
-                case 't': ch3 = '\t' ;  break ;
-                case 'r': ch3 = '\r' ;  break ;
-                case 'b': ch3 = '\b' ;  break ;
-                case 'f': ch3 = '\f' ;  break ;
-                case '\'': ch3 = '\'' ; break ;
-                case '\"': ch3 = '\"' ; break ;
-                case '\\': ch3 = '\\' ; break ;
-                default:
-                    throw new AtlasException("Unknown escape: \\"+ch2) ;
-            }
-            sb.append(ch3) ;
-        }
-        return sb.toString() ;
-    }
-    
-    public static int hex(String s, int i, int len)
-    {
-//        if ( i+len >= s.length() )
-//        {
-//            
-//        }
-        int x = 0 ;
-        for ( int j = i ; j < i+len ; j++ )
-        {
-           char ch = s.charAt(j) ;
-           int k = 0  ;
-           switch (ch)
-           {
-               case '0': k = 0 ; break ; 
-               case '1': k = 1 ; break ;
-               case '2': k = 2 ; break ;
-               case '3': k = 3 ; break ;
-               case '4': k = 4 ; break ;
-               case '5': k = 5 ; break ;
-               case '6': k = 6 ; break ;
-               case '7': k = 7 ; break ;
-               case '8': k = 8 ; break ;
-               case '9': k = 9 ; break ;
-               case 'A': case 'a': k = 10 ; break ;
-               case 'B': case 'b': k = 11 ; break ;
-               case 'C': case 'c': k = 12 ; break ;
-               case 'D': case 'd': k = 13 ; break ;
-               case 'E': case 'e': k = 14 ; break ;
-               case 'F': case 'f': k = 15 ; break ;
-               default:
-                   throw new AtlasException("Illegal hex escape: "+ch) ;
-           }
-           x = (x<<4)+k ;
-        }
-        return x ;
-    }
-
-}


Mime
View raw message