http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SetUtils.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SetUtils.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SetUtils.java deleted file mode 100644 index f4e561d..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SetUtils.java +++ /dev/null @@ -1,84 +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.HashSet ; -import java.util.Set ; - -public class SetUtils -{ - private SetUtils() {} - - public static <X> Set<X> setOfOne(X element) { return DS.setOfOne(element) ; } - - // Set specific operations - - public static <T> Set<T> intersection(Set<? extends T> setLeft, Set<? extends T> setRight) - { - Set<T> results = new HashSet<>(setLeft) ; - results.retainAll(setRight) ; - return results ; - } - - public static <T> boolean intersectionP(Set<? extends T> s1, Set<? extends T> s2) - { - for( T elt : s1 ) - { - if ( s2.contains(elt) ) - return true ; - } - return false ; - } - - public static <T> Set<T> union(Set<? extends T> s1, Set<? extends T> s2) - { - Set<T> s3 = new HashSet<>(s1) ; - s3.addAll(s2) ; - return s3 ; - } - - /** Return is s1 \ s2 */ - - public static <T> Set<T> difference(Set<? extends T> s1, Set<? extends T> s2) - { - Set<T> s3 = new HashSet<>(s1) ; - s3.removeAll(s2) ; - return s3 ; - } - - /** Return true if s1 and s2 are disjoint */ - public static <T> boolean isDisjoint(Set<? extends T> s1, Set<? extends T> s2) - { - Set<? extends T> x = s1 ; - Set<? extends T> y = s2 ; - if ( s1.size() < s2.size() ) - { - x = s2 ; - y = s1 ; - } - - for ( T item : x ) - { - if ( y.contains(item)) - 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/Sink.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sink.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sink.java deleted file mode 100644 index 01bb809..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sink.java +++ /dev/null @@ -1,29 +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; - - -/** Interface for the destination of things */ -public interface Sink<T> extends Closeable -{ - // Can't help but think it should be "Pipe" - // If Sync looses Sync(boolean), then make this "extends Sync" - void send(T item) ; - void flush() ; -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkCounting.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkCounting.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkCounting.java deleted file mode 100644 index 62c6e43..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkCounting.java +++ /dev/null @@ -1,41 +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 final class SinkCounting<T> extends SinkWrapper<T> -{ - private long count = 0 ; - - public SinkCounting(Sink<T> output) - { super(output) ; } - - public SinkCounting() - { super(new SinkNull<T>()) ; } - - @Override - public void send(T thing) - { - count++ ; - super.send(thing) ; - } - - public long getCount() { return count ; } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkLogging.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkLogging.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkLogging.java deleted file mode 100644 index e6928de..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkLogging.java +++ /dev/null @@ -1,41 +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.slf4j.Logger ; - -public class SinkLogging<T> implements Sink<T> -{ - private Logger log ; - - public SinkLogging(Logger log) { this.log = log ; } - - @Override - public void send(T item) - { - log.info("Sink: "+item) ; - } - - @Override - public void flush() { } - - @Override - public void close() {} - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkNull.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkNull.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkNull.java deleted file mode 100644 index 9242c97..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkNull.java +++ /dev/null @@ -1,33 +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 class SinkNull<T> implements Sink<T> -{ - public static <X> SinkNull<X> create() { return new SinkNull<>() ; } - - /*@Override*/ @Override - public void send(T thing) {} - /*@Override*/ @Override - public void close() {} - /*@Override*/ @Override - public void flush() { } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkPrint.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkPrint.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkPrint.java deleted file mode 100644 index 4fc694d..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkPrint.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.io.PrintStream ; - -public class SinkPrint<T> implements Sink<T> -{ - - private PrintStream out ; - - public SinkPrint() - { this(System.out); } - - public SinkPrint(PrintStream out) - { this.out = out ; } - - @Override - public void send(T item) - { - out.println("Sink: "+item) ; - } - - @Override - public void flush() { } - - @Override - public void close() {} -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkSplit.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkSplit.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkSplit.java deleted file mode 100644 index 8d50ee4..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkSplit.java +++ /dev/null @@ -1,55 +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; - -/** Split a sink stream and duplicate the operations onto two sinks - * See also: {@link SinkWrapper} - */ -public class SinkSplit<T> implements Sink<T> -{ - private final Sink<T> sink1 ; - private final Sink<T> sink2 ; - - public SinkSplit(Sink<T> sink1, Sink<T> sink2) - { - this.sink1 = sink1 ; - this.sink2 = sink2 ; - } - - @Override - public void flush() - { - sink1.flush(); - sink2.flush(); - } - - @Override - public void send(T item) - { - sink1.send(item) ; - sink2.send(item) ; - } - - @Override - public void close() - { - sink1.close(); - sink2.close(); - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToCollection.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToCollection.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToCollection.java deleted file mode 100644 index d7e04ba..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToCollection.java +++ /dev/null @@ -1,38 +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; - -/** Send items to a collection */ -public class SinkToCollection<T> implements Sink<T> -{ - private final Collection<T> c ; - - public SinkToCollection(Collection<T> c) { this.c = c ; } - - @Override - public void send(T item) { c.add(item); } - - @Override - public void flush() {} - - @Override - public void close() {} -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToQueue.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToQueue.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToQueue.java deleted file mode 100644 index f7e5dff..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkToQueue.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.concurrent.BlockingQueue ; -import java.util.concurrent.CancellationException ; - -/** Send items to a blocking queue */ -public class SinkToQueue<T> implements Sink<T> -{ - private final BlockingQueue<T> queue ; - - public SinkToQueue(BlockingQueue<T> queue) { this.queue = queue ; } - - @Override - public void send(T item) - { - try - { - if (Thread.interrupted()) throw new InterruptedException(); - // Hopefully we'll never get passed null... but just in case - if (null == item) return; - queue.put(item); - } - catch (InterruptedException e) - { - throw new CancellationException(); - } - } - - @Override - public void flush() {} - - @Override - public void close() {} -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkWrapper.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkWrapper.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkWrapper.java deleted file mode 100644 index c6632ba..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SinkWrapper.java +++ /dev/null @@ -1,44 +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; - -/** Wrap one sink in another - to pass on behaviour, the derived Sink must call super.operation - * See also: {@link SinkSplit} - */ -public class SinkWrapper<T> implements Sink<T> -{ - protected final Sink<T> sink ; - - public SinkWrapper(Sink<T> sink) - { - this.sink = sink ; - } - - @Override - public void flush() - { sink.flush(); } - - @Override - public void send(T item) - { sink.send(item) ; } - - @Override - public void close() - { sink.close(); } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/StrUtils.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/StrUtils.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/StrUtils.java deleted file mode 100644 index 9a9be76..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/StrUtils.java +++ /dev/null @@ -1,292 +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.util.ArrayList ; -import java.util.List ; -import java.util.Map ; - - -public class StrUtils //extends StringUtils -{ - private StrUtils() {} - - /** strjoin with a newline as the separator */ - public static String strjoinNL(String... args) - { - return join("\n", args) ; - } - - /** strjoin with a newline as the separator */ - public static String strjoinNL(List<String> args) - { - return join("\n", args) ; - } - - /** Concatentate strings, using a separator */ - public static String strjoin(String sep, String... args) - { - return join(sep, args) ; - } - - /** Concatentate string, using a separator */ - public static String strjoin(String sep, List<String> args) - { - return join(sep, args) ; - } - - private static String join(String sep, List<String> a) - { - return join(sep, a.toArray(new String[0])) ; - } - - private static String join(String sep, String...a) - { - if ( a.length == 0 ) - return "" ; - - if ( a.length == 1) - return a[0] ; - - StringBuilder sbuff = new StringBuilder() ; - sbuff.append(a[0]) ; - - for ( int i = 1 ; i < a.length ; i++ ) - { - if ( sep != null ) - sbuff.append(sep) ; - sbuff.append(a[i]) ; - } - return sbuff.toString() ; - } - - public static final int CMP_GREATER = +1 ; - public static final int CMP_EQUAL = 0 ; - public static final int CMP_LESS = -1 ; - - public static final int CMP_UNEQUAL = -9 ; - public static final int CMP_INDETERMINATE = 2 ; - - public static int strCompare(String s1, String s2) - { - // Value is the difference of the first differing chars - int x = s1.compareTo(s2) ; - if ( x < 0 ) return CMP_LESS ; - if ( x > 0 ) return CMP_GREATER ; - if ( x == 0 ) return CMP_EQUAL ; - throw new InternalErrorException("String comparison failure") ; - } - - public static int strCompareIgnoreCase(String s1, String s2) - { - // Value is the difference of the first differing chars - int x = s1.compareToIgnoreCase(s2) ; - if ( x < 0 ) return CMP_LESS ; - if ( x > 0 ) return CMP_GREATER ; - if ( x == 0 ) return CMP_EQUAL ; - throw new InternalErrorException("String comparison failure") ; - } - - public static byte[] asUTF8bytes(String s) - { - try { return s.getBytes("UTF-8") ; } - catch (UnsupportedEncodingException ex) - { throw new InternalErrorException("UTF-8 not supported!") ; } - } - - public static String fromUTF8bytes(byte[] bytes) - { - try { return new String(bytes, "UTF-8") ; } - catch (UnsupportedEncodingException ex) - { throw new InternalErrorException("UTF-8 not supported!") ; } - } - - public static String str(Object x) - { - if ( x == null ) return "<null>" ; - return x.toString() ; - } - - /** Split but also trim whiespace. */ - public static String[] split(String s, String splitStr) - { - String[] x = s.split(splitStr) ; - for ( int i = 0 ; i < x.length ; i++ ) - { - x[i] = x[i].trim() ; - } - return x ; - } - - /** Does one string contain another string? - * @param str1 - * @param str2 - * @return true if str1 contains str2 - */ - public final static boolean contains(String str1, String str2) - { - return str1.contains(str2) ; - } - - public final static String replace(String string, String target, String replacement) - { - return string.replace(target, replacement) ; - } - - public static String substitute(String str, Map<String, String>subs) - { - for ( Map.Entry<String, String> e : subs.entrySet() ) - { - String param = e.getKey() ; - if ( str.contains(param) ) - str = str.replace(param, e.getValue()) ; - } - return str ; - } - - public static String strform(Map<String, String>subs, String... args) - { - return substitute(strjoinNL(args),subs) ; - } - - public static String chop(String x) - { - if ( x.length() == 0 ) - return x ; - return x.substring(0, x.length()-1) ; - } - - public static String noNewlineEnding(String x) - { - while ( x.endsWith("\n") || x.endsWith("\r") ) - x = StrUtils.chop(x) ; - return x ; - } - - public static List<Character> toCharList(String str) - { - List<Character> characters = new ArrayList<>(str.length()) ; - for ( Character ch : str.toCharArray() ) - characters.add(ch) ; - return characters ; - } - - // ==== Encoding and decoding strings based on a marker character (e.g. %) - // and then the hexadecimal representation of the character. - // Only characters 0-255 can be encoded. - - /** Encode a string using hex values e.g. %20 - * - * @param str String to encode - * @param marker Marker character - * @param escapees Characters to encode (must include the marker) - * @return Encoded string (returns input object if no change) - */ - public static String encodeHex(String str, char marker, char[] escapees) - { - // We make a first pass to see if there is anything to do. - // This is assuming - // (1) the string is shortish (e.g. fits in L1) - // (2) necessary escaping is not common - - int N = str.length(); - int idx = 0 ; - // Scan stage. - for ( ; idx < N ; idx++ ) - { - char ch = str.charAt(idx) ; - if ( Chars.charInArray(ch, escapees) ) - break ; - } - if ( idx == N ) - return str ; - - // At least one char to convert - StringBuilder buff = new StringBuilder() ; - buff.append(str, 0, idx) ; // Insert first part. - for ( ; idx < N ; idx++ ) - { - char ch = str.charAt(idx) ; - if ( Chars.charInArray(ch, escapees) ) - { - Chars.encodeAsHex(buff, marker, ch) ; - continue ; - } - buff.append(ch) ; - } - return buff.toString(); - } - - /** Decode a string using marked hex values e.g. %20 - * - * @param str String to decode - * @param marker The marker charcater - * @return Decoded string (returns input object on no change) - */ - public static String decodeHex(String str, char marker) - { - int idx = str.indexOf(marker) ; - if ( idx == -1 ) - return str ; - StringBuilder buff = new StringBuilder() ; - - buff.append(str, 0, idx) ; - int N = str.length() ; - - for ( ; idx < N ; idx++ ) - { - char ch = str.charAt(idx) ; - // First time through this is true, always. - if ( ch != marker ) - buff.append(ch) ; - else - { - char hi = str.charAt(idx+1) ; - char lo = str.charAt(idx+2) ; // exceptions. - char ch2 = (char)(hexDecode(hi)<<4 | hexDecode(lo)) ; - buff.append(ch2) ; - idx += 2 ; - } - } - return buff.toString() ; - } - - // Encoding is table-driven but for decode, we use code. - static private int hexDecode(char ch) { - if (ch >= '0' && ch <= '9' ) - return ch - '0' ; - if ( ch >= 'A' && ch <= 'F' ) - return ch - 'A' + 10 ; - if ( ch >= 'a' && ch <= 'f' ) - return ch - 'a' + 10 ; - return -1 ; - } - - public static String escapeString(String x) - { - return EscapeStr.stringEsc(x) ; - } - - public static String unescapeString(String x) - { - return EscapeStr.unescapeStr(x) ; - } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sync.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sync.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sync.java deleted file mode 100644 index c8e549b..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Sync.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 Sync -{ - public void sync() ; -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/SystemUtils.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SystemUtils.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/SystemUtils.java deleted file mode 100644 index fa208f8..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/SystemUtils.java +++ /dev/null @@ -1,57 +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.slf4j.Logger ; -import org.slf4j.LoggerFactory ; - -public class SystemUtils -{ - private static Logger log = LoggerFactory.getLogger(SystemUtils.class.getName()); - // Unfortunately, this tends to cause confusing logging. - private static boolean logging = false ; - - static public ClassLoader chooseClassLoader() - { - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - - if ( logging && classLoader != null ) - log.trace("Using thread classloader") ; - -// if (classLoader == null) -// { -// classLoader = this.getClass().getClassLoader(); -// if ( classLoader != null ) -// logger.trace("Using 'this' classloader") ; -// } - - if ( classLoader == null ) - { - classLoader = ClassLoader.getSystemClassLoader() ; - if ( logging && classLoader != null ) - log.trace("Using system classloader") ; - } - - if ( classLoader == null ) - throw new AtlasException("Failed to find a classloader") ; - return classLoader ; - } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Timer.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Timer.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Timer.java deleted file mode 100644 index 304e086..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Timer.java +++ /dev/null @@ -1,72 +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 ; - -/** A Timer of operations */ -public class Timer { - - protected long timeFinish = -1 ; - protected boolean inTimer = false ; - protected long timeStart = 0 ; - - public Timer() {} - - public void startTimer() { - if ( inTimer ) - throw new AtlasException("Already in timer") ; - - timeStart = System.currentTimeMillis() ; - timeFinish = -1 ; - inTimer = true ; - } - - /** Return time in millisecods */ - public long endTimer() { - if ( !inTimer ) - throw new AtlasException("Not in timer") ; - timeFinish = System.currentTimeMillis() ; - inTimer = false ; - return getTimeInterval() ; - } - - public long readTimer() { - if ( !inTimer ) - throw new AtlasException("Not in timer") ; - return System.currentTimeMillis() - timeStart ; - } - - public long getTimeInterval() { - if ( inTimer ) - throw new AtlasException("Still timing") ; - if ( timeFinish == -1 ) - throw new AtlasException("No valid interval") ; - - return timeFinish - timeStart ; - } - - static public String timeStr(long timeInterval) { - return String.format("%.3f", timeInterval / 1000.0) ; - } - - protected String timeStr(long timePoint, long startTimePoint) { - return timeStr(timePoint - startTimePoint) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Trie.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Trie.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Trie.java deleted file mode 100644 index 0d823bc..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Trie.java +++ /dev/null @@ -1,407 +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.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * An implementation of a classic Trie, this is a mapping from strings to some - * value type optimized for fast prefix search and match. If you do not need - * prefix search then you should typically use a standard {@link Map} instead. - * <p> - * The empty or null string may be used as a special key to refer to the root - * node of the trie. - * </p> - * <p> - * A Trie cannot store null values since null is used as an internal marker to - * indicate that there is no value associated with a key. This is necessary - * because the nature of the data structure means that adding a key potentially - * adds multiple keys many of which will not be associated with a value. - * </p> - * - * @param <T> - * Type of the value stored. - */ -public final class Trie<T> { - - private TrieNode<T> root = new TrieNode<>(null); - - /** - * Adds a value to the trie overwriting any existing value - * <p> - * Note that a null value is treated as if the key does not actually exist - * in the tree so trying to add a null is a no-op. If you want to remove a - * key use the {@link #remove(String)} method instead. - * </p> - * - * @param key - * Key - * @param value - * Value - */ - public void add(String key, T value) { - if (value == null) - return; - TrieNode<T> n = this.moveToNode(key); - n.setValue(value); - } - - /** - * Move to a node creating new nodes if necessary - * - * @param key - * Key - * @return Node - */ - private TrieNode<T> moveToNode(String key) { - TrieNode<T> current = this.root; - if (key == null) - return current; - for (int i = 0; i < key.length(); i++) { - current = current.moveToChild(key.charAt(i)); - } - return current; - } - - /** - * Try to find a node in the trie - * - * @param key - * Key - * @return Node or null if not found - */ - private TrieNode<T> find(String key) { - TrieNode<T> current = this.root; - if (key == null) - return current; - for (int i = 0; i < key.length(); i++) { - current = current.getChild(key.charAt(i)); - if (current == null) - break; - } - return current; - } - - /** - * Removes a value from the trie - * <p> - * This doesn't actually remove the key per-se rather sets the value - * associated with the key to null. - * </p> - * - * @param key - * Key - */ - public void remove(String key) { - TrieNode<T> n = this.find(key); - if (n != null) { - n.setValue(null); - } - } - - /** - * Gets whether a key exists in the trie and has a non-null value mapped to - * it - * - * @param key - * Key - * @return True if the key exists and has a non-null value mapped to it - */ - public boolean contains(String key) { - return this.contains(key, true); - } - - /** - * Gets whether a key exists in the trie and meets the given value criteria - * - * @param key - * Key - * @param requireValue - * If true a key must have a non-null value associated with it to - * be considered to be contained in the tree, if false then the - * key must merely map to a node in the trie - * @return True if the key exists and the value criteria is met, false - * otherwise - */ - public boolean contains(String key, boolean requireValue) { - TrieNode<T> n = this.find(key); - if (n == null) - return false; - if (requireValue) { - return n.hasValue(); - } else { - return true; - } - } - - /** - * Gets whether a key value pair are present in the trie - * - * @param key - * Key - * @param value - * Value - * @return True if the key value pair exists in the trie, false otherwise - */ - public boolean contains(String key, T value) { - TrieNode<T> n = this.find(key); - if (n == null) - return false; - if (value == null && !n.hasValue()) - return true; - return value.equals(n.getValue()); - } - - /** - * Gets the value associated with a key - * - * @param key - * Key - * @return Value - */ - public T get(String key) { - TrieNode<T> n = this.find(key); - if (n == null) - return null; - return n.getValue(); - } - - /** - * Performs a prefix search and returns all values mapped under the given - * prefix. The entirety of the prefix must be matches, if you only want part - * of the prefix to be matched use the {@link #partialSearch(String)} method - * instead. - * - * @param prefix - * Prefix - * @return List of values associated with the given key - */ - public List<T> prefixSearch(String prefix) { - TrieNode<T> n = this.find(prefix); - if (n == null) - return new ArrayList<>(); - return Collections.unmodifiableList(n.getValues()); - } - - /** - * Performs a search and returns any value associated with any partial or - * whole prefix of the key - * - * @param key - * Key - * @return List of values associated with any partial prefix of the key - */ - public List<T> partialSearch(String key) { - List<T> values = new ArrayList<>(); - TrieNode<T> current = this.root; - if (key == null) { - if (current.hasValue()) - values.add(current.getValue()); - } else { - for (int i = 0; i < key.length(); i++) { - if (current.hasValue()) - values.add(current.getValue()); - current = current.getChild(key.charAt(i)); - if (current == null) - return Collections.unmodifiableList(values); - } - - // If we reach here current is the complete key match - // so make sure to include it in the values list - if (current.hasValue()) { - values.add(current.getValue()); - } - - } - return Collections.unmodifiableList(values); - } - - /** - * Finds the shortest match for a given key i.e. returns the value - * associated with the shortest prefix of the key that has a value - * - * @param key - * Key - * @return Shortest Match or null if no possible matches - */ - public T shortestMatch(String key) { - TrieNode<T> current = this.root; - if (key == null) - return current.getValue(); - for (int i = 0; i < key.length(); i++) { - if (current.hasValue()) - break; - current = current.getChild(key.charAt(i)); - if (current == null) - return null; - } - return current.getValue(); - } - - /** - * Finds the longest match for a given key i.e. returns the value associated - * with the longest prefix of the key that has a value - * - * @param key - * Key - * @return Longest Match or null if no possible matches - */ - public T longestMatch(String key) { - T value = null; - TrieNode<T> current = this.root; - if (key == null) { - return current.getValue(); - } else { - for (int i = 0; i < key.length(); i++) { - if (current.hasValue()) - value = current.getValue(); - current = current.getChild(key.charAt(i)); - if (current == null) - return value; - } - // If we reach here current is the complete key match - // so return its value if it has one - if (current.hasValue()) { - return current.getValue(); - } - } - return value; - } - - /** - * Represents a node in the Trie - * <p> - * The implementation is designed to be sparse such that we delay creation - * of things at both leafs and interior nodes until they are actually needed - * </p> - * - */ - private static class TrieNode<T> { - private Map<Character, TrieNode<T>> children = null; - private Character singletonChildChar = null; - private TrieNode<T> singletonChild = null; - private T value; - - /** - * Creates a Trie Node - * - * @param value - * Value - */ - public TrieNode(T value) { - this.value = value; - } - - /** - * Gets the value - * - * @return Value - */ - public T getValue() { - return this.value; - } - - /** - * Sets the value - * - * @param value - * Value - */ - public void setValue(T value) { - this.value = value; - } - - /** - * Returns whether a non-null value is associated with this node - * - * @return True if there is a non-null value, false otherwise - */ - public boolean hasValue() { - return this.value != null; - } - - /** - * Gets the child (if it exists) - * - * @param c - * Character to move to - * @return Child - */ - public TrieNode<T> getChild(Character c) { - if (this.children != null) { - return this.children.get(c); - } else if (c.equals(this.singletonChildChar)) { - return this.singletonChild; - } else { - return null; - } - } - - /** - * Moves to a child (creating a new node if necessary) - * - * @param c - * Character to move to - * @return Child - */ - public TrieNode<T> moveToChild(Character c) { - TrieNode<T> n = this.getChild(c); - if (n == null) { - n = new TrieNode<>(null); - if (this.children != null) { - // Add to existing map - this.children.put(c, n); - } else if (this.singletonChildChar != null) { - // Need to lazily create map - this.children = new HashMap<>(); - this.children.put(this.singletonChildChar, this.singletonChild); - this.children.put(c, n); - } else { - // Singleton child - this.singletonChildChar = c; - this.singletonChild = n; - } - } - return n; - } - - /** - * Gets all values from a given node and its descendants - * - * @return Values - */ - public List<T> getValues() { - List<T> values = new ArrayList<>(); - if (this.hasValue()) { - values.add(this.value); - } - if (this.children != null) { - for (TrieNode<T> child : this.children.values()) { - values.addAll(child.getValues()); - } - } else if (this.singletonChild != null) { - values.addAll(this.singletonChild.getValues()); - } - return values; - } - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/Tuple.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Tuple.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/Tuple.java deleted file mode 100644 index ae944a7..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/Tuple.java +++ /dev/null @@ -1,153 +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.Arrays ; -import java.util.Iterator ; -import java.util.List ; - -import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.IteratorArray ; -import org.apache.jena.atlas.iterator.Transform ; - -/** Tuple class - tuples are immutable and must be created initialized */ -public class Tuple<T> implements Iterable<T> { - // Interface this? - // Classes: TupleImpl, TupleSlice - public static <X> Tuple<X> createTuple(@SuppressWarnings("unchecked") X... elements) { - X[] els = elements ; // ArrayUtils.copy(elements) ; - return create(els) ; - } - - /** - * Create a tuple from an array of elements. The array is not copied and - * should not be modified after this call. - * <p> - * There is also a {@link TupleBuilder} which does create an idendent - * copy, in case that style is preferrable for creating tuples. - */ - public static <X> Tuple<X> create(X[] elements) { - return new Tuple<>(elements) ; - } - - // TupleLib?? - public static <T> Iterator<T> project(final int slot, Iterator<Tuple<T>> iter) { - Transform<Tuple<T>, T> projection = new Transform<Tuple<T>, T>() { - @Override - public T convert(Tuple<T> tuple) { - return tuple.get(slot) ; - } - } ; - return Iter.map(iter, projection) ; - } - - public static <T> Iterator<Tuple<T>> prefix(final int prefixLength, Iterator<Tuple<T>> iter) { - Transform<Tuple<T>, Tuple<T>> sub = new Transform<Tuple<T>, Tuple<T>>() { - @Override - public Tuple<T> convert(Tuple<T> tuple) { - T[] x = ArrayUtils.copy(tuple.tuple, 0, prefixLength) ; - return Tuple.create(x) ; - } - } ; - return Iter.map(iter, sub) ; - } - - protected final T[] tuple ; - - protected Tuple(@SuppressWarnings("unchecked") T... tuple) { - this.tuple = tuple ; - } - - public T get(int idx) { - return tuple[idx] ; - } - - public int countNotNull() { - int x = 0 ; - for ( T item : tuple ) - if ( item != null ) - x++ ; - return x ; - } - - public List<T> asList() { - return Arrays.asList(tuple) ; - } - - public T[] tuple() { - return tuple ; - } - - public T[] tupleCopy() { - return ArrayUtils.copy(tuple) ; - } - - @Override - public Iterator<T> iterator() { - return IteratorArray.create(tuple) ; - } - - /** Return a tuple with the column mapping applied */ - public Tuple<T> map(ColumnMap colMap) { - return colMap.map(this) ; - } - - /** Return a tuple with the column mapping reversed */ - public Tuple<T> unmap(ColumnMap colMap) { - return colMap.unmap(this) ; - } - - public int size() { - return tuple.length ; - } - - @Override - public int hashCode() { - int x = 99 ; - for ( T n : tuple ) { - if ( n != null ) - x = x << 1 ^ n.hashCode() ; - } - return x ; - } - - /** Equality of tuples is based on equality of the elements in the tuple */ - @Override - public boolean equals(Object other) { - if ( this == other ) - return true ; - if ( !(other instanceof Tuple<? >) ) - return false ; - Tuple<? > x = (Tuple<? >)other ; - if ( x.size() != this.size() ) - return false ; - for ( int i = 0 ; i < tuple.length ; i++ ) { - Object obj1 = tuple[i] ; - Object obj2 = x.tuple[i] ; - if ( !Lib.equal(obj1, obj2) ) - return false ; - } - return true ; - } - - @Override - public String toString() { - return "[" + Iter.asString(iterator(), ", ") + "]" ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java deleted file mode 100644 index 278334d..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/TupleBuilder.java +++ /dev/null @@ -1,50 +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.ArrayList ; -import java.util.List ; - -/** Tuple builder class - tuples are immutable, this is how to create them in the builder style */ -public class TupleBuilder<T> -{ - private List<T> x = new ArrayList<>() ; - - public TupleBuilder() { } - - public TupleBuilder<T> add(T element) { - x.add(element) ; - return this ; - } - - public TupleBuilder<T> reset() { - x.clear() ; - return this ; - } - - public Tuple<T> build() { - @SuppressWarnings("unchecked") - T[] elts = (T[])new Object[x.size()] ; - // Copy contents, should not create a new array because elts - // is created with the right size so elts == elts2 - T[] elts2 = x.toArray(elts) ; - return new Tuple<>(elts2) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/XMLLib.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/XMLLib.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/XMLLib.java deleted file mode 100644 index e8640df..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/XMLLib.java +++ /dev/null @@ -1,62 +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; - -/** Operations in someway related to XML */ -public class XMLLib -{ - /** Trim the XML whitespace characters strictly needed for whitespace facet collapse. - * This <b>not</b> full whitespace facet collapse, which also requires processing of - * internal spaces. Because none of the datatypes that have whitespace facet - * collapse and have values we extract can legally contain internal whitespace, - * we just need to trim the string. - * - * Java String.trim removes any characters less than 0x20. - */ - static String WScollapse(String string) - { - int len = string.length(); - if ( len == 0 ) - return string ; - - if ( (string.charAt(0) > 0x20) && (string.charAt(len-1) > 0x20) ) - return string ; - - int idx1 = 0 ; - for ( ; idx1 < len ; idx1++ ) - { - char ch = string.charAt(idx1) ; - if ( ! testForWS(ch) ) - break ; - } - int idx2 = len-1 ; - for ( ; idx2 > idx1 ; idx2-- ) - { - char ch = string.charAt(idx2) ; - if ( ! testForWS(ch) ) - break ; - } - return string.substring(idx1, idx2+1) ; - } - - private static boolean testForWS(char ch) - { - return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t' ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java deleted file mode 100644 index 00befa0..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache0.java +++ /dev/null @@ -1,72 +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.cache ; - -import java.util.Iterator ; -import java.util.concurrent.Callable ; - -import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; - -/** A cache that keeps nothing */ -public final class Cache0<K, V> implements Cache<K, V> { - @Override - public boolean containsKey(K key) { - return false ; - } - - @Override - public V getIfPresent(K key) { - return null ; - } - - @Override - public V getOrFill(K key, Callable<V> callable) { - return null ; - } - - @Override - public void put(K key, V thing) {} - - @Override - public void remove(K key) {} - - @Override - public Iterator<K> keys() { - return Iter.nullIterator() ; - } - - @Override - public boolean isEmpty() { - return true ; - } - - @Override - public void clear() {} - - @Override - public long size() { - return 0 ; - } - - @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) {} - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java deleted file mode 100644 index 38ab5c6..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.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.cache; - -import java.util.Iterator ; -import java.util.concurrent.Callable ; - -import org.apache.jena.atlas.iterator.SingletonIterator ; -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; -import org.apache.jena.atlas.lib.Lib ; - -/** A one-slot cache.*/ -public class Cache1<K, V> implements Cache<K,V> -{ - private ActionKeyValue<K, V> dropHandler = null ; - private K cacheKey ; - private V cacheValue ; - - public Cache1() { clear() ; } - - @Override - public boolean containsKey(K key) - { - if ( cacheKey == null ) - return false ; - return cacheKey.equals(key) ; - } - - @Override - public V getIfPresent(K key) - { - if ( cacheKey == null ) return null ; - if ( cacheKey.equals(key) ) return cacheValue ; - return null ; - } - - @Override - public V getOrFill(K key, Callable<V> callable) { - return CacheOps.getOrFillSync(this, key, callable) ; - } - - @Override - public void clear() - { - if ( cacheKey == null ) - return ; - - K k = cacheKey ; - V v = cacheValue ; - cacheKey = null ; - cacheValue = null ; - - notifyDrop(k, v) ; - } - - @Override - public boolean isEmpty() - { - return cacheKey == null ; - } - - @Override - public Iterator<K> keys() - { - return new SingletonIterator<>(cacheKey) ; - } - - @Override - public void put(K key, V thing) - { - if ( Lib.equal(cacheKey, key) && Lib.equal(cacheValue, thing) ) - // No change. - return ; - - // Change - K k = cacheKey ; - V v = cacheValue ; - // Displaces any existing cached key/value pair - cacheKey = key ; - cacheValue = thing ; - notifyDrop(k, v) ; - } - - @Override - public void remove(K key) - { - if ( cacheKey == null ) return ; - if ( cacheKey.equals(key) ) - clear() ; // Will notify - } - - @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) - { - this.dropHandler = dropHandler ; - } - - private void notifyDrop(K key, V thing) - { - if ( dropHandler != null && key != null ) - dropHandler.apply(key, thing) ; - } - - @Override - public long size() - { - return (cacheKey == null) ? 0 : 1 ; - } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java deleted file mode 100644 index fd5959c..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheGuava.java +++ /dev/null @@ -1,119 +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.cache; - -import java.util.Iterator ; -import java.util.concurrent.Callable ; -import java.util.concurrent.ExecutionException ; - -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; -import org.apache.jena.atlas.logging.Log ; - -import org.apache.jena.ext.com.google.common.cache.CacheBuilder ; -import org.apache.jena.ext.com.google.common.cache.RemovalListener ; -import org.apache.jena.ext.com.google.common.cache.RemovalNotification ; - -/** Wrapper around com.google.common.cache */ -final -public class CacheGuava<K,V> implements Cache<K, V> -{ - private ActionKeyValue<K, V> dropHandler = null ; - /*private*/ org.apache.jena.ext.com.google.common.cache.Cache<K,V> cache ; - - public CacheGuava(int size) - { - RemovalListener<K,V> drop = new RemovalListener<K, V>() { - @Override - public void onRemoval(RemovalNotification<K, V> notification) { - if ( dropHandler != null ) - dropHandler.apply(notification.getKey(), - notification.getValue()) ; - } - } ; - cache = CacheBuilder.newBuilder() - .maximumSize(size) - .removalListener(drop) - .recordStats() - .concurrencyLevel(8) - .build() ; - } - - // Change the interface to be ... - @Override - public V getOrFill(K key, Callable<V> filler) { - try { - return cache.get(key, filler) ; - } - catch (ExecutionException e) { - Log.warn(CacheGuava.class, "Execution exception filling cache", e) ; - return null ; - } - } - - @Override - public V getIfPresent(K key) { - return cache.getIfPresent(key) ; - } - - @Override - public void put(K key, V thing) { - if ( thing == null ) { - cache.invalidate(key); - return ; - } - cache.put(key, thing) ; - } - - @Override - public boolean containsKey(K key) { - return cache.getIfPresent(key) != null ; - } - - @Override - public void remove(K key) { - cache.invalidate(key) ; - } - - @Override - public Iterator<K> keys() { - return cache.asMap().keySet().iterator() ; - } - - @Override - public boolean isEmpty() { - return cache.size() == 0 ; - } - - @Override - public void clear() { - cache.invalidateAll() ; - } - - @Override - public long size() { - return cache.size() ; - } - - @Override - public void setDropHandler(ActionKeyValue<K, V> dropHandler) { - this.dropHandler = dropHandler ; - } -} - http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheOps.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheOps.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheOps.java deleted file mode 100644 index c8560bb..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheOps.java +++ /dev/null @@ -1,50 +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.cache; - -import java.util.concurrent.Callable ; - -import org.apache.jena.atlas.AtlasException ; -import org.apache.jena.atlas.lib.Cache ; - -/** Support operations for Cache functions */ -class CacheOps { - - /** Implementation of getOrFill based on Cache.get and Cache.put */ - public static <K,V> V getOrFill(Cache<K,V> cache, K key, Callable<V> callable) { - V value = cache.getIfPresent(key) ; - if ( value == null ) { - try { value = callable.call() ; } - catch (Exception e) { - throw new AtlasException("Exception on cache fill", e) ; - } - if ( value != null ) - cache.put(key, value) ; - } - return value ; - } - - /** Thread safe implementation of getOrFill based on Cache.get and Cache.put */ - public static <K,V> V getOrFillSync(Cache<K,V> cache, K key, Callable<V> callable) { - synchronized(cache) { - return getOrFill(cache, key, callable) ; - } - } -} - http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java deleted file mode 100644 index b3bf048..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetImpl.java +++ /dev/null @@ -1,93 +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.cache ; - -import java.util.Iterator ; - -import org.apache.jena.atlas.iterator.Action ; -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; -import org.apache.jena.atlas.lib.CacheSet ; - -/** Cache set */ -public class CacheSetImpl<T> implements CacheSet<T> { - // LinkHashSet does not have LRU support. - static Object theOnlyValue = new Object() ; - Cache<T, Object> cacheMap = null ; - - public CacheSetImpl(Cache<T, Object> cache) { - cacheMap = cache ; - } - - /** Callback for entries when dropped from the cache */ - @Override - public void setDropHandler(Action<T> dropHandler) { - cacheMap.setDropHandler(new Wrapper<T>(dropHandler)) ; - } - - // From map action to set action. - static class Wrapper<T> implements ActionKeyValue<T, Object> { - Action<T> dropHandler ; - - public Wrapper(Action<T> dropHandler) { - this.dropHandler = dropHandler ; - } - - @Override - public void apply(T key, Object value) { - dropHandler.apply(key) ; - } - - } - - @Override - public void add(T e) { - cacheMap.put(e, theOnlyValue) ; - } - - @Override - public void clear() { - cacheMap.clear() ; - } - - @Override - public boolean contains(T obj) { - return cacheMap.containsKey(obj) ; - } - - @Override - public boolean isEmpty() { - return cacheMap.isEmpty() ; - } - - public Iterator<T> iterator() { - return cacheMap.keys() ; - } - - @Override - public void remove(T obj) { - cacheMap.remove(obj) ; - } - - @Override - public long size() { - return cacheMap.size() ; - } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java deleted file mode 100644 index fc3a3bd..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetSync.java +++ /dev/null @@ -1,65 +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.cache ; - -import org.apache.jena.atlas.iterator.Action ; -import org.apache.jena.atlas.lib.CacheSet ; - -public class CacheSetSync<T> implements CacheSet<T> { - private CacheSet<T> cache ; - - public CacheSetSync(CacheSet<T> cache) { - this.cache = cache ; - } - - @Override - synchronized public void add(T e) { - cache.add(e) ; - } - - @Override - synchronized public void clear() { - cache.clear() ; - } - - @Override - synchronized public boolean contains(T obj) { - return cache.contains(obj) ; - } - - @Override - synchronized public boolean isEmpty() { - return cache.isEmpty() ; - } - - @Override - synchronized public void remove(T obj) { - cache.remove(obj) ; - } - - @Override - synchronized public long size() { - return cache.size() ; - } - - @Override - synchronized public void setDropHandler(Action<T> dropHandler) { - cache.setDropHandler(dropHandler) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java deleted file mode 100644 index c11ffb0..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSetWrapper.java +++ /dev/null @@ -1,65 +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.cache ; - -import org.apache.jena.atlas.iterator.Action ; -import org.apache.jena.atlas.lib.CacheSet ; - -public class CacheSetWrapper<T> implements CacheSet<T> { - private CacheSet<T> cache ; - - public CacheSetWrapper(CacheSet<T> cache) { - this.cache = cache ; - } - - @Override - public void add(T e) { - cache.add(e) ; - } - - @Override - public void clear() { - cache.clear() ; - } - - @Override - public boolean contains(T obj) { - return cache.contains(obj) ; - } - - @Override - public boolean isEmpty() { - return cache.isEmpty() ; - } - - @Override - public void remove(T obj) { - cache.remove(obj) ; - } - - @Override - public long size() { - return cache.size() ; - } - - @Override - public void setDropHandler(Action<T> dropHandler) { - cache.setDropHandler(dropHandler) ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java deleted file mode 100644 index a33d8e2..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheSimple.java +++ /dev/null @@ -1,161 +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.cache; - -import java.util.Arrays ; -import java.util.Iterator ; -import java.util.concurrent.Callable ; - -import org.apache.jena.atlas.iterator.Iter ; -import org.apache.jena.atlas.iterator.IteratorArray ; -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; - - -/** - * A simple fixed size cache that uses the hash code to address a slot. - * Clash policy is to overwrite. - * No object creation during lookup or insert. - */ - -public class CacheSimple<K,V> implements Cache<K,V> -{ - private final V[] values ; - private final K[] keys ; - private final int size ; - private int currentSize = 0 ; - private ActionKeyValue<K,V> dropHandler = null ; - - public CacheSimple(int size) - { - @SuppressWarnings("unchecked") - V[] x = (V[])new Object[size] ; - values = x ; - - @SuppressWarnings("unchecked") - K[] z = (K[])new Object[size] ; - keys = z ; - - this.size = size ; - } - - - @Override - public void clear() - { - Arrays.fill(values, null) ; - Arrays.fill(keys, null) ; - // drop handler - currentSize = 0 ; - } - - @Override - public boolean containsKey(K key) - { - return getIfPresent(key) != null ; - } - - // Return key index : -(index+1) if the key does not match - private final int index(K key) - { - int x = (key.hashCode()&0x7fffffff) % size ; - if ( keys[x] != null && keys[x].equals(key) ) - return x ; - return -x-1 ; - } - - private final int decode(int x) - { - if ( x >= 0 ) return x ; - return -x-1 ; - } - - @Override - public V getIfPresent(K key) - { - int x = index(key) ; - if ( x < 0 ) - return null ; - return values[x] ; - } - - @Override - public V getOrFill(K key, Callable<V> callable) { - return CacheOps.getOrFill(this, key, callable) ; - } - - @Override - public void put(K key, V thing) - { - int x = index(key) ; - V old = null ; - if ( x < 0 ) - // New. - x = decode(x) ; - else - { - // Drop the old K->V - old = values[x] ; - if ( dropHandler != null ) - dropHandler.apply(keys[x], old) ; - currentSize-- ; - } - - values[x] = thing ; - if ( thing == null ) - //put(,null) is a remove. - keys[x] = null ; - else { - keys[x] = key ; - currentSize++ ; - } - } - - @Override - public void remove(K key) - { - put(key, null) ; - } - - @Override - public long size() - { - return currentSize ; - } - - @Override - public Iterator<K> keys() - { - Iterator<K> iter = IteratorArray.create(keys) ; - return Iter.removeNulls(iter) ; - } - - @Override - public boolean isEmpty() - { - return currentSize == 0 ; - } - - /** Callback for entries when dropped from the cache */ - @Override - public void setDropHandler(ActionKeyValue<K,V> dropHandler) - { - this.dropHandler = dropHandler ; - } -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java deleted file mode 100644 index e655749..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/CacheWrapper.java +++ /dev/null @@ -1,65 +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.cache; -import java.util.Iterator ; -import java.util.concurrent.Callable ; - -import org.apache.jena.atlas.lib.ActionKeyValue ; -import org.apache.jena.atlas.lib.Cache ; - - - -public class CacheWrapper<Key,T> implements Cache<Key,T> -{ - protected Cache<Key,T> cache ; - - public CacheWrapper(Cache<Key,T> cache) { this.cache = cache ; } - - @Override - public void clear() { cache.clear(); } - - @Override - public boolean containsKey(Key key) { return cache.containsKey(key) ; } - - @Override - public T getIfPresent(Key key) { return cache.getIfPresent(key) ; } - - @Override - public T getOrFill(Key key, Callable<T> callable) { return cache.getOrFill(key, callable) ; } - - @Override - public boolean isEmpty() { return cache.isEmpty() ; } - - @Override - public Iterator<Key> keys() { return cache.keys(); } - - @Override - public void put(Key key, T thing) { cache.put(key, thing) ; } - - @Override - public void remove(Key key) { cache.remove(key) ; } - - @Override - public void setDropHandler(ActionKeyValue<Key, T> dropHandler) - { cache.setDropHandler(dropHandler) ; } - - @Override - public long size() { return cache.size() ; } - -} http://git-wip-us.apache.org/repos/asf/jena/blob/9eedadcd/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java b/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java deleted file mode 100644 index c9f879c..0000000 --- a/jena-arq/src/main/java/org/apache/jena/atlas/lib/cache/Getter.java +++ /dev/null @@ -1,25 +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.cache; - -/** A get interface */ -public interface Getter<K, V> -{ - public V get(K key) ; -}
