01: /*
02: * (c) Copyright 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: * All rights reserved.
04: * [See end of file]
05: */
06:
07: package arq.examples.propertyfunction;
08:
09: import com.hp.hpl.jena.graph.Node;
10: import com.hp.hpl.jena.sparql.pfunction.PFuncAssignToObject;
11:
12: /** Example property function that uppercases the lexical form of a literal.
13: * The subject must be bound, the object not bound. {@link localname} shows a
14: * property function that handles more cases of subject or object bing bound or unbound.
15: * <pre>
16: * PREFIX ext: <java:arq.examples.propertyfunction.>
17: * </pre>
18: * <pre>
19: * { ?string ext:uppercase ?uppercase }
20: * </pre>
21: * <pre>
22: * { "lower case" ext:uppercase ?uppercase }
23: * </pre>
24: * Else fails to match.
25: */
26:
27: public class uppercase extends PFuncAssignToObject {
28: public Node calc(Node node) {
29: if (!node.isLiteral())
30: return null;
31: String str = node.getLiteralLexicalForm().toUpperCase();
32: return Node.createLiteral(str);
33: }
34: }
35:
36: /*
37: * (c) Copyright 2006, 2007, 2008 Hewlett-Packard Development Company, LP
38: * All rights reserved.
39: *
40: * Redistribution and use in source and binary forms, with or without
41: * modification, are permitted provided that the following conditions
42: * are met:
43: * 1. Redistributions of source code must retain the above copyright
44: * notice, this list of conditions and the following disclaimer.
45: * 2. Redistributions in binary form must reproduce the above copyright
46: * notice, this list of conditions and the following disclaimer in the
47: * documentation and/or other materials provided with the distribution.
48: * 3. The name of the author may not be used to endorse or promote products
49: * derived from this software without specific prior written permission.
50: *
51: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
52: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
53: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
54: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
55: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
56: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
57: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
58: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
59: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
60: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
61: */
|