You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/08/01 15:49:33 UTC
[15/51] [partial] incubator-juneau git commit: Merge changes from
GitHub repo.
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
deleted file mode 100755
index 5b865a1..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfCollectionFormat.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights: Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import com.ibm.juno.core.jena.annotation.*;
-
-/**
- * Used in conjunction with the {@link Rdf#collectionFormat() @Rdf.collectionFormat()} annotation to fine-tune how
- * classes, beans, and bean properties are serialized, particularly collections.
- * <p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum RdfCollectionFormat {
-
- /**
- * Default formatting (default).
- * <p>
- * Inherit formatting from parent class or parent package.
- * If no formatting specified at any level, default is {@link #SEQ}.
- */
- DEFAULT,
-
- /**
- * Causes collections and arrays to be rendered as RDF sequences.
- */
- SEQ,
-
- /**
- * Causes collections and arrays to be rendered as RDF bags.
- */
- BAG,
-
- /**
- * Causes collections and arrays to be rendered as RDF lists.
- */
- LIST,
-
- /**
- * Causes collections and arrays to be rendered as multi-valued RDF properties instead of sequences.
- * <p>
- * Note that enabling this setting will cause order of elements in the collection to be lost.
- */
- MULTI_VALUED;
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class
deleted file mode 100755
index 9170a84..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$N3.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class
deleted file mode 100755
index 4a64589..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$NTriple.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class
deleted file mode 100755
index 39cc7e4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Turtle.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class
deleted file mode 100755
index 3398700..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser$Xml.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class
deleted file mode 100755
index 8f78101..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java
deleted file mode 100755
index 50fec99..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParser.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.utils.StringUtils.*;
-import static com.ibm.juno.core.xml.XmlUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.hp.hpl.jena.util.iterator.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Parses RDF into POJOs.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * Refer to <a class='doclink' href='package-summary.html#ParserConfigurableProperties'>Configurable Properties</a>
- * for the entire list of configurable properties.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * The following direct subclasses are provided for language-specific parsers:
- * <ul>
- * <li>{@link RdfParser.Xml} - RDF/XML and RDF/XML-ABBREV.
- * <li>{@link RdfParser.NTriple} - N-TRIPLE.
- * <li>{@link RdfParser.Turtle} - TURTLE.
- * <li>{@link RdfParser.N3} - N3.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <p>
- * See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juno.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Consumes(value="text/xml+rdf")
-public class RdfParser extends ReaderParser {
-
- /** Default XML parser, all default settings.*/
- public static final RdfParser DEFAULT_XML = new RdfParser.Xml().lock();
-
- /** Default Turtle parser, all default settings.*/
- public static final RdfParser DEFAULT_TURTLE = new RdfParser.Turtle().lock();
-
- /** Default N-Triple parser, all default settings.*/
- public static final RdfParser DEFAULT_NTRIPLE = new RdfParser.NTriple().lock();
-
- /** Default N3 parser, all default settings.*/
- public static final RdfParser DEFAULT_N3 = new RdfParser.N3().lock();
-
-
- /** Consumes RDF/XML input */
- @Consumes("text/xml+rdf")
- public static class Xml extends RdfParser {
- /** Constructor */
- public Xml() {
- setProperty(RDF_language, LANG_RDF_XML);
- }
- }
-
- /** Consumes N-Triple input */
- @Consumes(value="text/n-triple")
- public static class NTriple extends RdfParser {
- /** Constructor */
- public NTriple() {
- setProperty(RDF_language, LANG_NTRIPLE);
- }
- }
-
- /** Consumes Turtle input */
- @Consumes(value="text/turtle")
- public static class Turtle extends RdfParser {
- /** Constructor */
- public Turtle() {
- setProperty(RDF_language, LANG_TURTLE);
- }
- }
-
- /** Consumes N3 input */
- @Consumes(value="text/n3")
- public static class N3 extends RdfParser {
- /** Constructor */
- public N3() {
- setProperty(RDF_language, LANG_N3);
- }
- }
-
-
- /** Jena parser properties currently set on this parser. */
- protected transient RdfParserProperties rpp = new RdfParserProperties();
-
-
- @SuppressWarnings({"unchecked", "rawtypes"})
- @Override /* ReaderParser */
- protected <T> T doParse(Reader in, int estimatedSize, ClassMeta<T> type, ParserContext ctx) throws ParseException, IOException {
-
- in = IOUtils.getBufferedReader(in, estimatedSize);
-
- RdfParserContext rctx = (RdfParserContext)ctx;
-
- type = ctx.getBeanContext().normalizeClassMeta(type);
-
- Model model = rctx.model;
- RDFReader r = rctx.rdfReader;
- r.read(model, in, null);
- BeanContext bc = ctx.getBeanContext();
-
- List<Resource> roots = getRoots(model, rctx);
-
- try {
- // Special case where we're parsing a loose collection of resources.
- if (rctx.isLooseCollection() && (type.isCollection() || type.isArray())) {
- Collection c = null;
- if (type.isArray())
- c = new ArrayList();
- else
- c = (type.canCreateNewInstance(ctx.getOuter()) ? (Collection<?>)type.newInstance(ctx.getOuter()) : new ObjectList(bc));
- for (Resource resource : roots)
- c.add(parseAnything(type.getElementType(), resource, null, rctx, ctx.getOuter(), null));
-
- if (type.isArray())
- return (T)bc.toArray(type, c);
- return (T)c;
- }
-
- if (roots.isEmpty())
- return null;
- if (roots.size() > 1)
- throw new ParseException("Too many root nodes found in model: {0}", roots.size());
- Resource resource = roots.get(0);
-
- return parseAnything(type, resource, null, rctx, ctx.getOuter(), null);
-
- } catch (ParseException e) {
- throw e;
- } catch (Exception e) {
- throw new ParseException(e);
- }
- }
-
- /*
- * Finds the roots in the model using either the "root" property to identify it,
- * or by resorting to scanning the model for all nodes with no incoming predicates.
- */
- private List<Resource> getRoots(Model m, RdfParserContext ctx) {
- List<Resource> l = new LinkedList<Resource>();
-
- // First try to find the root using the "http://www.ibm.com/juno/root" property.
- Property root = m.createProperty(ctx.junoNs.getUri(), RDF_junoNs_ROOT);
- for (ResIterator i = m.listResourcesWithProperty(root); i.hasNext();)
- l.add(i.next());
-
- if (! l.isEmpty())
- return l;
-
- // Otherwise, we need to find all resources that aren't objects.
- // We want to explicitly ignore statements where the subject
- // and object are the same node.
- Set<RDFNode> objects = new HashSet<RDFNode>();
- for (StmtIterator i = m.listStatements(); i.hasNext();) {
- Statement st = i.next();
- RDFNode subject = st.getSubject();
- RDFNode object = st.getObject();
- if (object.isResource() && ! object.equals(subject))
- objects.add(object);
- }
- for (ResIterator i = m.listSubjects(); i.hasNext();) {
- Resource r = i.next();
- if (! objects.contains(r))
- l.add(r);
- }
- return l;
- }
-
- private <T> BeanMap<T> parseIntoBeanMap(Resource r2, BeanMap<T> m, RdfParserContext ctx) throws ParseException {
- BeanMeta<T> bm = m.getMeta();
- if (bm.hasBeanUriProperty() && r2.getURI() != null)
- m.putBeanUri(r2.getURI());
- Property subTypeIdProperty = null;
- BeanPropertyMeta<T> stp = bm.getSubTypeIdProperty();
- if (stp != null) {
- subTypeIdProperty = ctx.getProperty(stp.getName());
- Statement st = r2.getProperty(subTypeIdProperty);
- if (st == null)
- throw new ParseException("Could not find subtype ID property for bean of type ''{0}''", m.getClassMeta());
- String subTypeId = st.getLiteral().getString();
- stp.set(m, subTypeId);
- }
- for (StmtIterator i = r2.listProperties(); i.hasNext();) {
- Statement st = i.next();
- Property p = st.getPredicate();
- if (p.equals(subTypeIdProperty))
- continue;
- String key = XmlUtils.decode(p.getLocalName());
- BeanPropertyMeta<T> pMeta = m.getPropertyMeta(key);
- if (pMeta != null) {
- RDFNode o = st.getObject();
- ClassMeta<?> cm = pMeta.getClassMeta();
- if ((cm.isArray() || cm.isCollection()) && isMultiValuedCollections(ctx, pMeta)) {
- Object val = parseAnything(cm.getElementType(), o, pMeta, ctx, m.getBean(false), key);
- pMeta.add(m, val);
- } else {
- Object val = parseAnything(cm, o, pMeta, ctx, m.getBean(false), key);
- pMeta.set(m, val);
- }
- } else if (! (p.equals(ctx.pRoot) || p.equals(ctx.pClass) || p.equals(subTypeIdProperty))) {
- if (bm.isSubTyped()) {
- RDFNode o = st.getObject();
- Object val = parseAnything(object(), o, null, ctx, m.getBean(false), key);
- m.put(key, val);
- } else {
- onUnknownProperty(ctx, key, m, -1, -1);
- }
- }
- }
- return m;
- }
-
- private boolean isMultiValuedCollections(RdfParserContext ctx, BeanPropertyMeta<?> pMeta) {
- if (pMeta != null && pMeta.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
- return pMeta.getRdfMeta().getCollectionFormat() == RdfCollectionFormat.MULTI_VALUED;
- return ctx.getCollectionFormat() == RdfCollectionFormat.MULTI_VALUED;
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- private <T> T parseAnything(ClassMeta<T> nt, RDFNode n, BeanPropertyMeta<?> p, RdfParserContext ctx, Object outer, Object name) throws ParseException {
-
- BeanContext bc = ctx.getBeanContext();
-
- if (nt == null)
- nt = (ClassMeta<T>)object();
- PojoFilter<T,Object> filter = (PojoFilter<T,Object>)nt.getPojoFilter();
- ClassMeta<?> ft = nt.getFilteredClassMeta();
-
- if (! ft.canCreateNewInstance(outer)) {
- if (n.isResource()) {
- Statement st = n.asResource().getProperty(ctx.pClass);
- if (st != null) {
- String c = st.getLiteral().getString();
- ft = nt = (ClassMeta<T>)bc.getClassMetaFromString(c);
- }
- }
- }
-
- try {
-
- Object o = null;
- if (n.isResource() && n.asResource().getURI() != null && n.asResource().getURI().equals(RDF_NIL)) {
- // Do nothing. Leave o == null.
- } else if (ft.isObject()) {
- if (n.isLiteral()) {
- o = n.asLiteral().getValue();
- if (o instanceof String) {
- String s = o.toString();
- s = decode(s);
- if (ctx.trimWhitespace)
- s = s.trim();
- o = s;
- }
- }
- else if (n.isResource()) {
- Resource r = n.asResource();
- if (ctx.wasAlreadyProcessed(r))
- o = r.getURI();
- else if (r.getProperty(ctx.pValue) != null) {
- o = parseAnything(object(), n.asResource().getProperty(ctx.pValue).getObject(), null, ctx, outer, null);
- } else if (isSeq(r, ctx)) {
- o = new ObjectList(bc);
- parseIntoCollection(r.as(Seq.class), (Collection)o, ft.getElementType(), ctx);
- } else if (isBag(r, ctx)) {
- o = new ObjectList(bc);
- parseIntoCollection(r.as(Bag.class), (Collection)o, ft.getElementType(), ctx);
- } else if (r.canAs(RDFList.class)) {
- o = new ObjectList(bc);
- parseIntoCollection(r.as(RDFList.class), (Collection)o, ft.getElementType(), ctx);
- } else {
- // If it has a URI and no child properties, we interpret this as an
- // external resource, and convert it to just a URL.
- String uri = r.getURI();
- if (uri != null && ! r.listProperties().hasNext()) {
- o = r.getURI();
- } else {
- o = new ObjectMap(bc);
- parseIntoMap(r, (Map)o, null, null, ctx);
- }
- }
- } else {
- throw new ParseException("Unrecognized node type ''{0}'' for object", n);
- }
- } else if (ft.isBoolean()) {
- o = bc.convertToType(getValue(n, ctx, outer), boolean.class);
- } else if (ft.isCharSequence()) {
- String s = decode(getValue(n, ctx, outer).toString());
- if (ctx.trimWhitespace)
- s = s.trim();
- o = s;
- } else if (ft.isChar()) {
- o = decode(getValue(n, ctx, outer).toString()).charAt(0);
- } else if (ft.isNumber()) {
- o = parseNumber(getValue(n, ctx, outer).toString(), (Class<? extends Number>)ft.getInnerClass());
- } else if (ft.isMap()) {
- Resource r = n.asResource();
- if (ctx.wasAlreadyProcessed(r))
- return null;
- Map m = (ft.canCreateNewInstance(outer) ? (Map)ft.newInstance(outer) : new ObjectMap(bc));
- o = parseIntoMap(r, m, nt.getKeyType(), nt.getValueType(), ctx);
- } else if (ft.isCollection() || ft.isArray()) {
- if (ft.isArray())
- o = new ArrayList();
- else
- o = (ft.canCreateNewInstance(outer) ? (Collection<?>)ft.newInstance(outer) : new ObjectList(bc));
- Resource r = n.asResource();
- if (ctx.wasAlreadyProcessed(r))
- return null;
- if (isSeq(r, ctx)) {
- parseIntoCollection(r.as(Seq.class), (Collection)o, ft.getElementType(), ctx);
- } else if (isBag(r, ctx)) {
- parseIntoCollection(r.as(Bag.class), (Collection)o, ft.getElementType(), ctx);
- } else if (r.canAs(RDFList.class)) {
- parseIntoCollection(r.as(RDFList.class), (Collection)o, ft.getElementType(), ctx);
- } else {
- throw new ParseException("Unrecognized node type ''{0}'' for collection", n);
- }
- if (ft.isArray())
- o = bc.toArray(ft, (Collection)o);
- } else if (ft.canCreateNewInstanceFromObjectMap(outer)) {
- Resource r = n.asResource();
- if (ctx.wasAlreadyProcessed(r))
- return null;
- Map m = new ObjectMap(bc);
- parseIntoMap(r, m, nt.getKeyType(), nt.getValueType(), ctx);
- o = ft.newInstanceFromObjectMap(outer, (ObjectMap)m);
- } else if (ft.canCreateNewBean(outer)) {
- Resource r = n.asResource();
- if (ctx.wasAlreadyProcessed(r))
- return null;
- BeanMap<?> bm = bc.newBeanMap(outer, ft.getInnerClass());
- o = parseIntoBeanMap(r, bm, ctx).getBean();
- } else if (ft.isUri() && n.isResource()) {
- o = ft.newInstanceFromString(outer, decode(n.asResource().getURI()));
- } else if (ft.canCreateNewInstanceFromString(outer)) {
- o = ft.newInstanceFromString(outer, decode(getValue(n, ctx, outer).toString()));
- } else {
- throw new ParseException("Class ''{0}'' could not be instantiated. Reason: ''{1}''", ft.getInnerClass().getName(), ft.getNotABeanReason());
- }
-
- if (filter != null && o != null)
- o = filter.unfilter(o, nt);
-
- if (outer != null)
- setParent(nt, o, outer);
-
- if (name != null)
- setName(nt, o, name);
-
- return (T)o;
-
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- if (p == null)
- throw new ParseException("Error occurred trying to parse into class ''{0}''", ft).initCause(e);
- throw new ParseException("Error occurred trying to parse value for bean property ''{0}'' on class ''{1}''",
- p.getName(), p.getBeanMeta().getClassMeta()
- ).initCause(e);
- }
- }
-
- private boolean isSeq(RDFNode n, RdfParserContext ctx) {
- if (n.isResource()) {
- Statement st = n.asResource().getProperty(ctx.pType);
- if (st != null)
- return RDF_SEQ.equals(st.getResource().getURI());
- }
- return false;
- }
-
- private boolean isBag(RDFNode n, RdfParserContext ctx) {
- if (n.isResource()) {
- Statement st = n.asResource().getProperty(ctx.pType);
- if (st != null)
- return RDF_BAG.equals(st.getResource().getURI());
- }
- return false;
- }
-
- private Object getValue(RDFNode n, RdfParserContext ctx, Object outer) throws ParseException {
- if (n.isLiteral())
- return n.asLiteral().getValue();
- if (n.isResource()) {
- Statement st = n.asResource().getProperty(ctx.pValue);
- if (st != null) {
- n = st.getObject();
- if (n.isLiteral())
- return n.asLiteral().getValue();
- return parseAnything(object(), st.getObject(), null, ctx, outer, null);
- }
- }
- throw new ParseException("Unknown value type for node ''{0}''", n);
- }
-
- private <K,V> Map<K,V> parseIntoMap(Resource r, Map<K,V> m, ClassMeta<K> keyType, ClassMeta<V> valueType, RdfParserContext ctx) throws ParseException {
- // Add URI as "uri" to generic maps.
- if (r.getURI() != null) {
- K uri = convertAttrToType(m, "uri", keyType);
- V value = convertAttrToType(m, r.getURI(), valueType);
- m.put(uri, value);
- }
- for (StmtIterator i = r.listProperties(); i.hasNext();) {
- Statement st = i.next();
- Property p = st.getPredicate();
- String key = p.getLocalName();
- if (! (key.equals("root") && p.getURI().equals(ctx.junoNs.getUri()))) {
- key = decode(key);
- RDFNode o = st.getObject();
- K key2 = convertAttrToType(m, key, keyType);
- V value = parseAnything(valueType, o, null, ctx, m, key);
- m.put(key2, value);
- }
-
- }
- // TODO Auto-generated method stub
- return m;
- }
-
- private <E> Collection<E> parseIntoCollection(Container c, Collection<E> l, ClassMeta<E> et, RdfParserContext ctx) throws ParseException {
- for (NodeIterator ni = c.iterator(); ni.hasNext();) {
- E e = parseAnything(et, ni.next(), null, ctx, l, null);
- l.add(e);
- }
- return l;
- }
-
- private <E> Collection<E> parseIntoCollection(RDFList list, Collection<E> l, ClassMeta<E> et, RdfParserContext ctx) throws ParseException {
- for (ExtendedIterator<RDFNode> ni = list.iterator(); ni.hasNext();) {
- E e = parseAnything(et, ni.next(), null, ctx, l, null);
- l.add(e);
- }
- return l;
- }
-
- //--------------------------------------------------------------------------------
- // Overridden methods
- //--------------------------------------------------------------------------------
-
- @Override /* Parser */
- public RdfParserContext createContext(ObjectMap op, Method javaMethod, Object outer) {
- return new RdfParserContext(getBeanContext(), pp, rpp, op, javaMethod, outer);
- }
-
- @Override /* CoreApi */
- public RdfParser setProperty(String property, Object value) throws LockedException {
- checkLock();
- if (! rpp.setProperty(property, value))
- super.setProperty(property, value);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfParser setProperties(ObjectMap properties) throws LockedException {
- for (Map.Entry<String,Object> e : properties.entrySet())
- setProperty(e.getKey(), e.getValue());
- return this;
- }
-
- @Override /* CoreApi */
- public RdfParser addNotBeanClasses(Class<?>...classes) throws LockedException {
- super.addNotBeanClasses(classes);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfParser addFilters(Class<?>...classes) throws LockedException {
- super.addFilters(classes);
- return this;
- }
-
- @Override /* CoreApi */
- public <T> RdfParser addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
- super.addImplClass(interfaceClass, implClass);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfParser setClassLoader(ClassLoader classLoader) throws LockedException {
- super.setClassLoader(classLoader);
- return this;
- }
-
- @Override /* Lockable */
- public RdfParser lock() {
- super.lock();
- return this;
- }
-
- @Override /* Lockable */
- public RdfParser clone() {
- try {
- RdfParser c = (RdfParser)super.clone();
- c.rpp = rpp.clone();
- return c;
- } catch (CloneNotSupportedException e) {
- throw new RuntimeException(e); // Shouldn't happen
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class
deleted file mode 100755
index 32ba6c5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java
deleted file mode 100755
index f85e31f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserContext.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Context object that lives for the duration of a single parse of {@link RdfParser}.
- * <p>
- * See {@link ParserContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class RdfParserContext extends ParserContext {
-
- final String rdfLanguage;
- final Namespace junoNs, junoBpNs;
- final Property pRoot, pValue, pClass, pType;
- final Model model;
- final boolean trimWhitespace, looseCollection;
- final RDFReader rdfReader;
- final Set<Resource> urisVisited = new HashSet<Resource>();
- final RdfCollectionFormat collectionFormat;
-
- /**
- * Constructor.
- *
- * @param beanContext The bean context being used by the parser.
- * @param pp Default general parser properties.
- * @param rpp Default Jena parser properties.
- * @param op Override properties.
- * @param javaMethod The java method that called this parser, usually the method in a REST servlet.
- * @param outer The outer object for instantiating top-level non-static inner classes.
- */
- protected RdfParserContext(BeanContext beanContext, ParserProperties pp, RdfParserProperties rpp, ObjectMap op, Method javaMethod, Object outer) {
- super(beanContext, pp, op, javaMethod, outer);
- ObjectMap jenaSettings = new ObjectMap();
- jenaSettings.putAll(rpp.jenaSettings);
- if (op == null || op.isEmpty()) {
- this.rdfLanguage = rpp.rdfLanguage;
- this.junoNs = rpp.junoNs;
- this.junoBpNs = rpp.junoBpNs;
- this.trimWhitespace = rpp.trimWhitespace;
- this.collectionFormat = rpp.collectionFormat;
- this.looseCollection = rpp.looseCollection;
- } else {
- this.rdfLanguage = op.getString(RDF_language, rpp.rdfLanguage);
- this.junoNs = (op.containsKey(RDF_junoNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoNs)) : rpp.junoNs);
- this.junoBpNs = (op.containsKey(RDF_junoBpNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoBpNs)) : rpp.junoBpNs);
- this.trimWhitespace = op.getBoolean(RdfParserProperties.RDF_trimWhitespace, rpp.trimWhitespace);
- this.collectionFormat = RdfCollectionFormat.valueOf(op.getString(RDF_collectionFormat, "DEFAULT"));
- this.looseCollection = op.getBoolean(RDF_looseCollection, rpp.looseCollection);
- }
- this.model = ModelFactory.createDefaultModel();
- addModelPrefix(junoNs);
- addModelPrefix(junoBpNs);
- this.pRoot = model.createProperty(junoNs.getUri(), RDF_junoNs_ROOT);
- this.pValue = model.createProperty(junoNs.getUri(), RDF_junoNs_VALUE);
- this.pClass = model.createProperty(junoNs.getUri(), RDF_junoNs_CLASS);
- this.pType = model.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#type");
- rdfReader = model.getReader(rdfLanguage);
-
- // Note: NTripleReader throws an exception if you try to set any properties on it.
- if (! rdfLanguage.equals(LANG_NTRIPLE)) {
- for (Map.Entry<String,Object> e : jenaSettings.entrySet())
- rdfReader.setProperty(e.getKey(), e.getValue());
- }
- }
-
- boolean wasAlreadyProcessed(Resource r) {
- return ! urisVisited.add(r);
- }
-
- /**
- * Adds the specified namespace as a model prefix.
- *
- * @param ns The XML namespace.
- */
- public void addModelPrefix(Namespace ns) {
- model.setNsPrefix(ns.getName(), ns.getUri());
- }
-
- /**
- * Constructs a <code>Property</code> in the specified namespace in this mode.
- *
- * @param namespaceUri The namespace URI.
- * @param name The property name.
- * @return The new property object.
- */
- public Property getProperty(String namespaceUri, String name) {
- return model.createProperty(namespaceUri, name);
- }
-
- /**
- * Constructs a <code>Property</code> in the Juno Bean namespace in this mode.
- *
- * @param name The property name.
- * @return The new property object.
- */
- public Property getProperty(String name) {
- return model.createProperty(junoBpNs.getUri(), name);
- }
-
- /**
- * Returns the format for serializing collections.
- *
- * @return The format for serializing collections.
- */
- protected RdfCollectionFormat getCollectionFormat() {
- return collectionFormat;
- }
-
- /**
- * Returns the {@link RdfProperties#RDF_looseCollection} property value.
- *
- * @return The {@link RdfProperties#RDF_looseCollection} property value.
- */
- protected boolean isLooseCollection() {
- return looseCollection;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class
deleted file mode 100755
index c475e4b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java
deleted file mode 100755
index b6ea048..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfParserProperties.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.parser.*;
-
-/**
- * Configurable properties on the {@link RdfParser} class.
- * <p>
- * Use the {@link RdfParser#setProperty(String, Object)} method to set property values.
- * <p>
- * In addition to these properties, the following properties are also applicable for {@link RdfParser}.
- * <ul>
- * <li>{@link RdfProperties}
- * <li>{@link ParserProperties}
- * <li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfParserProperties extends RdfProperties implements Cloneable {
-
-
- /**
- * Trim whitespace from text elements ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * If <jk>true</jk>, whitespace in text elements will be automatically trimmed.
- */
- public static final String RDF_trimWhitespace = "RdfParser.trimWhitespace";
-
- boolean trimWhitespace = false;
-
- /**
- * Sets the specified property value.
- * @param property The property name.
- * @param value The property value.
- * @return <jk>true</jk> if property name was valid and property was set.
- */
- @Override /* RdfProperties */
- public boolean setProperty(String property, Object value) {
- if (property.equals(RDF_trimWhitespace))
- trimWhitespace = BeanContext.DEFAULT.convertToType(value, boolean.class);
- else
- return super.setProperty(property, value);
- return true;
- }
-
-
- //--------------------------------------------------------------------------------
- // Overridden methods
- //--------------------------------------------------------------------------------
-
- @Override /* Cloneable */
- public RdfParserProperties clone() {
- try {
- return (RdfParserProperties)super.clone();
- } catch (CloneNotSupportedException e) {
- throw new RuntimeException(e); // Shouldn't happen.
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class
deleted file mode 100755
index b05e79d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties$1.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class
deleted file mode 100755
index 804022f..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java
deleted file mode 100755
index 8994948..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfProperties.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import java.util.*;
-
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.xml.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Configurable properties common to both the {@link RdfSerializer} and {@link RdfParser} classes.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings("serial")
-public class RdfProperties {
-
- /**
- * Maps RDF writer names to property prefixes that apply to them.
- */
- final static Map<String,String> LANG_PROP_MAP = new HashMap<String,String>() {{
- put("RDF/XML","rdfXml.");
- put("RDF/XML-ABBREV","rdfXml.");
- put("N3","n3.");
- put("N3-PP","n3.");
- put("N3-PLAIN","n3.");
- put("N3-TRIPLES","n3.");
- put("TURTLE","n3.");
- put("N-TRIPLE","ntriple.");
- }};
-
- /**
- * The RDF language to serialize to ({@link String}, default=<js>"RDF/XML-ABBREV"</js>).
- * <p>
- * Can be any of the following:
- * <ul>
- * <li><js>"RDF/XML"</js>
- * <li><js>"RDF/XML-ABBREV"</js>
- * <li><js>"N-TRIPLE"</js>
- * <li><js>"N3"</js> - General name for the N3 writer.
- * Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when created.
- * Default is the pretty writer but can be overridden with system property <code>com.hp.hpl.jena.n3.N3JenaWriter.writer</code>.
- * <li><js>"N3-PP"</js> - Name of the N3 pretty writer.
- * The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding one-referenced bNodes.
- * <li><js>"N3-PLAIN"</js> - Name of the N3 plain writer.
- * The plain writer writes records by subject.
- * <li><js>"N3-TRIPLES"</js> - Name of the N3 triples writer.
- * This writer writes one line per statement, like N-Triples, but does N3-style prefixing.
- * <li><js>"TURTLE"</js> - Turtle writer.
- * http://www.dajobe.org/2004/01/turtle/
- * </ul>
- */
- public static final String RDF_language = "Rdf.language";
-
- /**
- * The XML namespace for Juno properties ({@link Namespace}, default=<js>{j:'http://www.ibm.com/juno/'}</js>).
- */
- public static final String RDF_junoNs = "Rdf.junoNs";
-
- /**
- * The default XML namespace for bean properties ({@link Namespace}, default=<js>{j:'http://www.ibm.com/junobp/'}</js>).
- */
- public static final String RDF_junoBpNs = "Rdf.junoBpNs";
-
- /**
- * Reuse XML namespaces when RDF namespaces not specified ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * When specified, namespaces defined using {@link XmlNs} and {@link Xml} will be inherited by the RDF serializers.
- * Otherwise, namespaces will be defined using {@link RdfNs} and {@link Rdf}.
- */
- public static final String RDF_useXmlNamespaces = "Rdf.useXmlNamespaces";
-
- /**
- * RDF/XML property: <code>iri_rules</code> ({@link String}, default=<js>"lax"</js>).
- * <p>
- * Set the engine for checking and resolving.
- * <p>
- * Possible values:
- * <ul>
- * <li><js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces is not good practice.
- * <li><js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces in IRIs.
- * <li><js>"iri"</js> - Sets the IRI engine to IRI (<a href='http://www.ietf.org/rfc/rfc3986.txt'>RFC 3986</a>, <a href='http://www.ietf.org/rfc/rfc3987.txt'>RFC 3987</a>).
- * </ul>
- */
- public static final String RDF_arp_iriRules = "Rdf.jena.rdfXml.iri-rules";
-
- /**
- * RDF/XML ARP property: <code>error-mode</code> ({@link String}, default=<js>"lax"</js>).
- * <p>
- * This allows a coarse-grained approach to control of error handling.
- * <p>
- * Possible values:
- * <ul>
- * <li><js>"default"</js>
- * <li><js>"lax"</js>
- * <li><js>"strict"</js>
- * <li><js>"strict-ignore"</js>
- * <li><js>"strict-warning"</js>
- * <li><js>"strict-error"</js>
- * <li><js>"strict-fatal"</js>
- * </ul>
- * <p>
- * See also:
- * <ul>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setDefaultErrorMode()'>ARPOptions.setDefaultErrorMode()</a>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setLaxErrorMode()'>ARPOptions.setLaxErrorMode()</a>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode()'>ARPOptions.setStrictErrorMode()</a>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setStrictErrorMode(int)'>ARPOptions.setStrictErrorMode(int)</a>
- * </ul>
- */
- public static final String RDF_arp_errorMode = "Rdf.jena.rdfXml.error-mode";
-
- /**
- * RDF/XML ARP property: <code>embedding</code> ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * Sets ARP to look for RDF embedded within an enclosing XML document.
- * <p>
- * See also:
- * <ul>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setEmbedding(boolean)'>ARPOptions.setEmbedding(boolean)</a>
- * </ul>
- */
- public static final String RDF_arp_embedding = "Rdf.jena.rdfXml.embedding";
-
- /**
- * RDF/XML ARP property: <code>ERR_xxx</code> ({@link String}).
- * <p>
- * Provides fine-grained control over detected error conditions.
- * <p>
- * Possible values:
- * <ul>
- * <li><js>"EM_IGNORE"</js>
- * <li><js>"EM_WARNING"</js>
- * <li><js>"EM_ERROR"</js>
- * <li><js>"EM_FATAL"</js>
- * </ul>
- * <p>
- * See also:
- * <ul>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPErrorNumbers.html'>ARPErrorNumbers</a>
- * <li><a href='http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/arp/ARPOptions.html#setErrorMode(int,%20int)'>ARPOptions.setErrorMode(int, int)</a>
- * </ul>
- */
- public static final String RDF_arp_err_ = "Rdf.jena.rdfXml.ERR_";
-
- /**
- * RDF/XML ARP property: <code>WARN_xxx</code> ({@link String}).
- * <p>
- * See {@link #RDF_arp_err_} for details.
- */
- public static final String RDF_arp_warn_ = "Rdf.jena.rdfXml.WARN_";
-
- /**
- * RDF/XML ARP property: <code>IGN_xxx</code> ({@link String}).
- * <p>
- * See {@link #RDF_arp_err_} for details.
- */
- public static final String RDF_arp_ign_ = "Rdf.jena.rdfXml.IGN_";
-
- /**
- * RDF/XML property: <code>xmlbase</code> ({@link String}, default=<jk>null</jk>).
- * <p>
- * The value to be included for an <xa>xml:base</xa> attribute on the root element in the file.
- */
- public static final String RDF_rdfxml_xmlBase = "Rdf.jena.rdfXml.xmlbase";
-
- /**
- * RDF/XML property: <code>longId</code> ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * Whether to use long ID's for anon resources.
- * Short ID's are easier to read, but can run out of memory on very large models.
- */
- public static final String RDF_rdfxml_longId = "Rdf.jena.rdfXml.longId";
-
- /**
- * RDF/XML property: <code>allowBadURIs</code> ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * URIs in the graph are, by default, checked prior to serialization.
- */
- public static final String RDF_rdfxml_allowBadUris = "Rdf.jena.rdfXml.allowBadURIs";
-
- /**
- * RDF/XML property: <code>relativeURIs</code> ({@link String}).
- * <p>
- * What sort of relative URIs should be used.
- * <p>
- * A comma separate list of options:
- * <ul>
- * <li><js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>)
- * <li><js>"network"</js> - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme)
- * <li><js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority)
- * <li><js>"relative"</js> - Relative path not begining in <js>"../"</js>
- * <li><js>"parent"</js> - Relative path begining in <js>"../"</js>
- * <li><js>"grandparent"</js> - Relative path begining in <js>"../../"</js>
- * </ul>
- * <p>
- * The default value is <js>"same-document, absolute, relative, parent"</js>.
- * To switch off relative URIs use the value <js>""</js>.
- * Relative URIs of any of these types are output where possible if and only if the option has been specified.
- */
- public static final String RDF_rdfxml_relativeUris = "Rdf.jena.rdfXml.relativeURIs";
-
- /**
- * RDF/XML property: <code>showXmlDeclaration</code> ({@link String}, default=<js>"default"</js>).
- * <p>
- * Possible values:
- * <ul>
- * <li><js>"true"</js> - Add XML Declaration to the output.
- * <li><js>"false"</js> - Don't add XML Declaration to the output.
- * <li><js>"default"</js> - Only add an XML Declaration when asked to write to an <code>OutputStreamWriter</code> that uses some encoding other than <code>UTF-8</code> or <code>UTF-16</code>.
- * In this case the encoding is shown in the XML declaration.
- * </ul>
- */
- public static final String RDF_rdfxml_showXmlDeclaration = "Rdf.jena.rdfXml.showXmlDeclaration";
-
- /**
- * RDF/XML property: <code>showDoctypeDeclaration</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * If true, an XML Doctype declaration is included in the output.
- * This declaration includes a <code>!ENTITY</code> declaration for each prefix mapping in the model, and any attribute value that starts with the URI of that mapping is written as starting with the corresponding entity invocation.
- */
- public static final String RDF_rdfxml_showDoctypeDeclaration = "Rdf.jena.rdfXml.showDoctypeDeclaration";
-
- /**
- * RDF/XML property: <code>tab</code> ({@link Integer}, default=<code>2</code>).
- * <p>
- * The number of spaces with which to indent XML child elements.
- */
- public static final String RDF_rdfxml_tab = "Rdf.jena.rdfXml.tab";
-
- /**
- * RDF/XML property: <code>attributeQuoteChar</code> ({@link Character}, default=<js>'"'</js>).
- * <p>
- * The XML attribute quote character.
- */
- public static final String RDF_rdfxml_attributeQuoteChar = "Rdf.jena.rdfXml.attributeQuoteChar";
-
- /**
- * RDF/XML property: <code>blockRules</code> ({@link String}, default=<js>""</js>).
- * <p>
- * A list of <code>Resource</code> or a <code>String</code> being a comma separated list of fragment IDs from <a href='http://www.w3.org/TR/rdf-syntax-grammar'>RDF Syntax Grammar</a> indicating grammar rules that will not be used.
- */
- public static final String RDF_rdfxml_blockRules = "Rdf.jena.rdfXml.blockRules";
-
- /**
- * N3/Turtle property: <code>minGap</code> ({@link Integer}, default=<code>1</code>).
- * <p>
- * Minimum gap between items on a line.
- */
- public static final String RDF_n3_minGap = "Rdf.jena.n3.minGap";
-
- /**
- * N3/Turtle property: <code>objectLists</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * Print object lists as comma separated lists.
- */
- public static final String RDF_n3_objectLists = "Rdf.jena.n3.objectLists";
-
- /**
- * N3/Turtle property: <code>subjectColumn</code> ({@link Integer}, default=indentProperty).
- * <p>
- * If the subject is shorter than this value, the first property may go on the same line.
- */
- public static final String RDF_n3_subjectColumn = "Rdf.jena.n3.subjectColumn";
-
- /**
- * N3/Turtle property: <code>propertyColumn</code> ({@link Integer}, default=<code>8</code>).
- * <p>
- * Width of the property column.
- */
- public static final String RDF_n3_propertyColumn = "Rdf.jena.n3.propertyColumn";
-
- /**
- * N3/Turtle property: <code>indentProperty</code> ({@link Integer}, default=<code>6</code>).
- * <p>
- * Width to indent properties.
- */
- public static final String RDF_n3_indentProperty = "Rdf.jena.n3.indentProperty";
-
- /**
- * N3/Turtle property: <code>widePropertyLen</code> ({@link Integer}, default=<code>20</code>).
- * <p>
- * Width of the property column.
- * Must be longer than <code>propertyColumn</code>.
- */
- public static final String RDF_n3_widePropertyLen = "Rdf.jena.n3.widePropertyLen";
-
- /**
- * N3/Turtle property: <code>abbrevBaseURI</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * Control whether to use abbreviations <code><></code> or <code><#></code>.
- */
- public static final String RDF_n3_abbrevBaseUri = "Rdf.jena.n3.abbrevBaseURI";
-
- /**
- * N3/Turtle property: <code>usePropertySymbols</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * Control whether to use <code>a</code>, <code>=</code> and <code>=></code> in output
- */
- public static final String RDF_n3_usePropertySymbols = "Rdf.jena.n3.usePropertySymbols";
-
- /**
- * N3/Turtle property: <code>useTripleQuotedStrings</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * Allow the use of <code>"""</code> to delimit long strings.
- */
- public static final String RDF_n3_useTripleQuotedStrings = "Rdf.jena.n3.useTripleQuotedStrings";
-
- /**
- * N3/Turtle property: <code>useDoubles</code> ({@link Boolean}, default=<jk>true</jk>).
- * <p>
- * Allow the use doubles as <code>123.456</code>.
- */
- public static final String RDF_n3_useDoubles = "Rdf.jena.n3.useDoubles";
-
- /**
- * The RDF format for representing collections and arrays. ({@link String}, default=<js>"DEFAULT"</js>).
- * <p>
- * Possible values:
- * <ul>
- * <li><js>"DEFAULT"</js> - Default format. The default is an RDF Sequence container.
- * <li><js>"SEQ"</js> - RDF Sequence container.
- * <li><js>"BAG"</js> - RDF Bag container.
- * <li><js>"LIST"</js> - RDF List container.
- * <li><js>"MULTI_VALUED"</js> - Multi-valued properties.
- * </ul>
- * </p>
- * <p>
- * Important Note: If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements
- * in the collection will get lost.
- */
- public static final String RDF_collectionFormat = "Rdf.collectionFormat";
- RdfCollectionFormat collectionFormat = RdfCollectionFormat.DEFAULT;
-
- /**
- * Specifies that collections should be serialized and parsed as loose collections. ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * When specified, collections of resources are handled as loose collections of resources in RDF instead of
- * resources that are children of an RDF collection (e.g. Sequence, Bag).
- * <p>
- * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of
- * losslessly representing POJO models, since the tree structure of these POJO models are lost
- * when serialized as loose collections.
- * <p>
- * This setting is typically only useful if the beans being parsed into do not have a bean property
- * annotated with {@link BeanProperty#beanUri @BeanProperty(beanUri=true)}.
- *
- * <dl>
- * <dt>Example:</dt>
- * <dd>
- * <p class='bcode'>
- * WriterSerializer s = <jk>new</jk> RdfSerializer.XmlAbbrev().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
- * ReaderParser p = <jk>new</jk> RdfParser.Xml().setProperty(<jsf>RDF_looseCollection</jsf>, <jk>true</jk>);
- *
- * List<MyBean> l = createListOfMyBeans();
- *
- * <jc>// Serialize to RDF/XML as loose resources</jc>
- * String rdfXml = s.serialize(l);
- *
- * <jc>// Parse back into a Java collection</jc>
- * l = p.parseCollection(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
- *
- * MyBean[] b = createArrayOfMyBeans();
- *
- * <jc>// Serialize to RDF/XML as loose resources</jc>
- * String rdfXml = s.serialize(b);
- *
- * <jc>// Parse back into a bean array</jc>
- * b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
- * </p>
- * </dd>
- * </dl>
- */
- public static final String RDF_looseCollection = "Rdf.looseCollection";
-
- String rdfLanguage = "RDF/XML-ABBREV";
- Namespace junoNs = NamespaceFactory.get("j", "http://www.ibm.com/juno/");
- Namespace junoBpNs = NamespaceFactory.get("jp", "http://www.ibm.com/junobp/");
- boolean useXmlNamespaces = true, looseCollection = false;
- Map<String,Object> jenaSettings = new HashMap<String,Object>();
-
- /**
- * Sets the specified property value.
- * @param property The property name.
- * @param value The property value.
- * @return <jk>true</jk> if property name was valid and property was set.
- */
- public boolean setProperty(String property, Object value) {
- if (property.equals(RDF_language))
- rdfLanguage = value.toString();
- else if (property.equals(RDF_junoNs))
- junoNs = NamespaceFactory.parseNamespace(value);
- else if (property.equals(RDF_junoBpNs))
- junoBpNs = NamespaceFactory.parseNamespace(value);
- else if (property.startsWith("Rdf.jena."))
- jenaSettings.put(property.substring(9), value);
- else if (property.equals(RDF_collectionFormat))
- collectionFormat = RdfCollectionFormat.valueOf(value.toString());
- else if (property.equals(RDF_useXmlNamespaces))
- useXmlNamespaces = Boolean.valueOf(value.toString());
- else if (property.equals(RDF_looseCollection))
- looseCollection = Boolean.valueOf(value.toString());
- else
- return false;
- return true;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class
deleted file mode 100755
index 4ac3006..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$1.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class
deleted file mode 100755
index e90348b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$N3.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class
deleted file mode 100755
index 0314bf4..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$NTriple.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class
deleted file mode 100755
index 8bde941..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Turtle.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class
deleted file mode 100755
index 79dc12d..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$Xml.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class
deleted file mode 100755
index 8c176f9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer$XmlAbbrev.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class
deleted file mode 100755
index 2af16f2..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java
deleted file mode 100755
index 4acb7cd..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializer.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.xml.XmlUtils.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.filter.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.utils.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Serializes POJOs to RDF.
- *
- *
- * <h6 class='topic'>Configurable properties</h6>
- * <p>
- * Refer to <a class='doclink' href='package-summary.html#SerializerConfigurableProperties'>Configurable Properties</a>
- * for the entire list of configurable properties.
- *
- *
- * <h6 class='topic'>Behavior-specific subclasses</h6>
- * <p>
- * The following direct subclasses are provided for language-specific serializers:
- * <ul>
- * <li>{@link RdfSerializer.Xml} - RDF/XML.
- * <li>{@link RdfSerializer.XmlAbbrev} - RDF/XML-ABBREV.
- * <li>{@link RdfSerializer.NTriple} - N-TRIPLE.
- * <li>{@link RdfSerializer.Turtle} - TURTLE.
- * <li>{@link RdfSerializer.N3} - N3.
- * </ul>
- *
- *
- * <h6 class='topic'>Additional Information</h6>
- * <p>
- * See <a class='doclink' href='package-summary.html#TOC'>RDF Overview</a> for an overview of RDF support in Juno.
- *
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@SuppressWarnings({ "rawtypes", "unchecked" })
-@Produces(value="text/xml+rdf+abbrev", contentType="text/xml+rdf")
-public class RdfSerializer extends WriterSerializer {
-
- /** Default RDF/XML serializer, all default settings.*/
- public static final RdfSerializer DEFAULT_XML = new RdfSerializer.Xml().lock();
-
- /** Default Abbreviated RDF/XML serializer, all default settings.*/
- public static final RdfSerializer DEFAULT_XMLABBREV = new RdfSerializer.XmlAbbrev().lock();
-
- /** Default Turtle serializer, all default settings.*/
- public static final RdfSerializer DEFAULT_TURTLE = new RdfSerializer.Turtle().lock();
-
- /** Default N-Triple serializer, all default settings.*/
- public static final RdfSerializer DEFAULT_NTRIPLE = new RdfSerializer.NTriple().lock();
-
- /** Default N3 serializer, all default settings.*/
- public static final RdfSerializer DEFAULT_N3 = new RdfSerializer.N3().lock();
-
-
- /** Produces RDF/XML output */
- @Produces("text/xml+rdf")
- public static class Xml extends RdfSerializer {
- /** Constructor */
- public Xml() {
- setProperty(RDF_language, LANG_RDF_XML);
- }
- }
-
- /** Produces Abbreviated RDF/XML output */
- @Produces(value="text/xml+rdf+abbrev", contentType="text/xml+rdf")
- public static class XmlAbbrev extends RdfSerializer {
- /** Constructor */
- public XmlAbbrev() {
- setProperty(RDF_language, LANG_RDF_XML_ABBREV);
- }
- }
-
- /** Produces N-Triple output */
- @Produces("text/n-triple")
- public static class NTriple extends RdfSerializer {
- /** Constructor */
- public NTriple() {
- setProperty(RDF_language, LANG_NTRIPLE);
- }
- }
-
- /** Produces Turtle output */
- @Produces("text/turtle")
- public static class Turtle extends RdfSerializer {
- /** Constructor */
- public Turtle() {
- setProperty(RDF_language, LANG_TURTLE);
- }
- }
-
- /** Produces N3 output */
- @Produces("text/n3")
- public static class N3 extends RdfSerializer {
- /** Constructor */
- public N3() {
- setProperty(RDF_language, LANG_N3);
- }
- }
-
-
- /** Jena serializer properties currently set on this serializer. */
- protected transient RdfSerializerProperties rsp = new RdfSerializerProperties();
-
- /** Xml serializer properties currently set on this serializer. */
- protected transient XmlSerializerProperties xsp = new XmlSerializerProperties();
-
-
- @Override /* Serializer */
- protected void doSerialize(Object o, Writer out, SerializerContext ctx) throws IOException, SerializeException {
-
- RdfSerializerContext rctx = (RdfSerializerContext)ctx;
-
- Model model = rctx.model;
- Resource r = null;
-
- ClassMeta<?> cm = rctx.getBeanContext().getClassMetaForObject(o);
- if (rctx.isLooseCollection() && cm != null && (cm.isCollection() || cm.isArray())) {
- Collection c = sort(ctx, cm.isCollection() ? (Collection)o : toList(cm.getInnerClass(), o));
- for (Object o2 : c)
- serializeAnything(o2, false, object(), rctx, "root", null, null);
- } else {
- RDFNode n = serializeAnything(o, false, object(), rctx, "root", null, null);
- if (n.isLiteral()) {
- r = model.createResource();
- r.addProperty(rctx.pValue, n);
- } else {
- r = n.asResource();
- }
-
- if (rctx.addRootProperty)
- r.addProperty(rctx.pRoot, "true");
- }
-
- rctx.writer.write(model, out, "http://unknown/");
- }
-
- private RDFNode serializeAnything(Object o, boolean isURI, ClassMeta<?> eType, RdfSerializerContext ctx, String attrName, BeanPropertyMeta bpm, Resource parentResource) throws SerializeException {
- Model m = ctx.model;
- BeanContext bc = ctx.getBeanContext();
-
- ClassMeta<?> aType = null; // The actual type
- ClassMeta<?> wType = null; // The wrapped type
- ClassMeta<?> gType = object(); // The generic type
-
- aType = ctx.push(attrName, o, eType);
-
- if (eType == null)
- eType = object();
-
- // Handle recursion
- if (aType == null) {
- o = null;
- aType = object();
- }
-
- if (o != null) {
-
- if (aType.isDelegate()) {
- wType = aType;
- aType = ((Delegate)o).getClassMeta();
- }
-
- gType = aType.getFilteredClassMeta();
-
- // Filter if necessary
- PojoFilter filter = aType.getPojoFilter();
- if (filter != null) {
- o = filter.filter(o);
-
- // If the filter's getFilteredClass() method returns Object, we need to figure out
- // the actual type now.
- if (gType.isObject())
- gType = bc.getClassMetaForObject(o);
- }
- } else {
- gType = eType.getFilteredClassMeta();
- }
-
- RDFNode n = null;
-
- if (o == null || gType.isChar() && ((Character)o).charValue() == 0) {
- if (bpm != null) {
- if (! ctx.isTrimNulls()) {
- n = m.createResource(RDF_NIL);
- }
- } else {
- n = m.createResource(RDF_NIL);
- }
-
- } else if (gType.isUri() || isURI) {
- n = m.createResource(getUri(o, null, ctx));
-
- } else if (gType.isCharSequence() || gType.isChar()) {
- n = m.createLiteral(encodeTextInvalidChars(o));
-
- } else if (gType.isNumber() || gType.isBoolean()) {
- if (! ctx.addLiteralTypes)
- n = m.createLiteral(o.toString());
- else
- n = m.createTypedLiteral(o);
-
- } else if (gType.isMap() || (wType != null && wType.isMap())) {
- if (o instanceof BeanMap) {
- BeanMap bm = (BeanMap)o;
- String uri = getUri(bm.getBeanUri(), null, ctx);
- n = m.createResource(uri);
- serializeBeanMap(bm, (Resource)n, ctx);
- } else {
- Map m2 = (Map)o;
- n = m.createResource();
- serializeMap(m2, (Resource)n, gType, ctx);
- }
-
- } else if (gType.hasToObjectMapMethod()) {
- Map m2 = gType.toObjectMap(o);
- n = m.createResource();
- serializeMap(m2, (Resource)n, gType, ctx);
-
- } else if (gType.isBean()) {
- BeanMap bm = bc.forBean(o);
- String uri = getUri(bm.getBeanUri(), null, ctx);
- n = m.createResource(uri);
- serializeBeanMap(bm, (Resource)n, ctx);
-
- } else if (gType.isCollection() || gType.isArray() || (wType != null && wType.isCollection())) {
- Collection c = sort(ctx, gType.isCollection() ? (Collection)o : toList(gType.getInnerClass(), o));
- RdfCollectionFormat f = ctx.getCollectionFormat();
- if (gType.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
- f = gType.getRdfMeta().getCollectionFormat();
- if (bpm != null && bpm.getRdfMeta().getCollectionFormat() != RdfCollectionFormat.DEFAULT)
- f = bpm.getRdfMeta().getCollectionFormat();
- switch (f) {
- case BAG: n = serializeToContainer(c, gType, m.createBag(), ctx); break;
- case LIST: n = serializeToList(c, gType, ctx); break;
- case MULTI_VALUED: serializeToMultiProperties(c, gType, bpm, ctx, attrName, parentResource); break;
- default: n = serializeToContainer(c, gType, m.createSeq(), ctx);
- }
- } else {
- n = m.createLiteral(encodeTextInvalidChars(o));
- }
-
- if (ctx.isAddClassAttrs() && n != null && n.isResource()) {
- if (o != null && ! eType.equals(aType))
- n.asResource().addProperty(ctx.pClass, aType.toString());
- else if (o == null)
- n.asResource().addProperty(ctx.pClass, eType.toString());
- }
-
- ctx.pop();
-
- return n;
- }
-
- private String getUri(Object uri, Object uri2, RdfSerializerContext ctx) {
- String s = null;
- if (uri != null)
- s = uri.toString();
- if ((s == null || s.isEmpty()) && uri2 != null)
- s = uri2.toString();
- if (s == null)
- return null;
- if (s.indexOf("://") == -1) {
- String aUri = ctx.getAbsolutePathUriBase();
- String rUri = ctx.getRelativeUriBase();
- if (StringUtils.startsWith(s, '/')) {
- if (aUri != null)
- return aUri + s;
- } else {
- if (rUri != null) {
- if (rUri.equals("/"))
- return '/' + s;
- return rUri + '/' + s;
- }
- }
- }
- return s;
- }
-
- private void serializeMap(Map m, Resource r, ClassMeta<?> type, RdfSerializerContext ctx) throws SerializeException {
-
- m = sort(ctx, m);
-
- ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
-
- ArrayList<Map.Entry<Object,Object>> l = new ArrayList<Map.Entry<Object,Object>>(m.entrySet());
- Collections.reverse(l);
- for (Map.Entry<Object,Object> me : l) {
- Object value = me.getValue();
-
- Object key = generalize(ctx, me.getKey(), keyType);
-
- Namespace ns = ctx.junoBpNs;
- Model model = ctx.model;
- Property p = model.createProperty(ns.getUri(), encodeElementName(key));
- RDFNode n = serializeAnything(value, false, valueType, ctx, key == null ? null : key.toString(), null, r);
- if (n != null)
- r.addProperty(p, n);
- }
- }
-
- private void serializeBeanMap(BeanMap m, Resource r, RdfSerializerContext ctx) throws SerializeException {
- ArrayList<BeanMapEntry> l = new ArrayList<BeanMapEntry>(m.entrySet());
- Collections.reverse(l);
- for (BeanMapEntry bme : l) {
- BeanPropertyMeta pMeta = bme.getMeta();
- ClassMeta<?> cm = pMeta.getClassMeta();
-
- if (pMeta.isBeanUri())
- continue;
-
- String key = bme.getKey();
- Object value = null;
- try {
- value = bme.getValue();
- } catch (StackOverflowError e) {
- throw e;
- } catch (Throwable t) {
- ctx.addBeanGetterWarning(pMeta, t);
- }
-
- if (canIgnoreValue(ctx, cm, key, value))
- continue;
-
- BeanPropertyMeta bpm = bme.getMeta();
- Namespace ns = bpm.getRdfMeta().getNamespace();
- if (ns == null && ctx.isUseXmlNamespaces())
- ns = bpm.getXmlMeta().getNamespace();
- if (ns == null)
- ns = ctx.junoBpNs;
- else if (ctx.isAutoDetectNamespaces())
- ctx.addModelPrefix(ns);
-
- Property p = ctx.model.createProperty(ns.getUri(), encodeElementName(key));
- RDFNode n = serializeAnything(value, pMeta.isUri(), cm, ctx, key, pMeta, r);
- if (n != null)
- r.addProperty(p, n);
- }
- }
-
-
- private Container serializeToContainer(Collection c, ClassMeta<?> type, Container list, RdfSerializerContext ctx) throws SerializeException {
-
- ClassMeta<?> elementType = type.getElementType();
- for (Object e : c) {
- RDFNode n = serializeAnything(e, false, elementType, ctx, null, null, null);
- list = list.add(n);
- }
- return list;
- }
-
- private RDFList serializeToList(Collection c, ClassMeta<?> type, RdfSerializerContext ctx) throws SerializeException {
- ClassMeta<?> elementType = type.getElementType();
- List<RDFNode> l = new ArrayList<RDFNode>(c.size());
- for (Object e : c) {
- l.add(serializeAnything(e, false, elementType, ctx, null, null, null));
- }
- return ctx.model.createList(l.iterator());
- }
-
- private void serializeToMultiProperties(Collection c, ClassMeta<?> gType, BeanPropertyMeta bpm, RdfSerializerContext ctx, String attrName, Resource parentResource) throws SerializeException {
- ClassMeta<?> elementType = gType.getElementType();
- for (Object e : c) {
- Namespace ns = null;
- if (bpm != null) {
- ns = bpm.getRdfMeta().getNamespace();
- if (ns == null && ctx.isUseXmlNamespaces())
- ns = bpm.getXmlMeta().getNamespace();
- }
- if (ns == null)
- ns = ctx.junoBpNs;
- else if (ctx.isAutoDetectNamespaces())
- ctx.addModelPrefix(ns);
- RDFNode n2 = serializeAnything(e, false, elementType, ctx, null, null, null);
- Property p = ctx.model.createProperty(ns.getUri(), encodeElementName(attrName));
- parentResource.addProperty(p, n2);
- }
-
- }
-
- //--------------------------------------------------------------------------------
- // Overridden methods
- //--------------------------------------------------------------------------------
-
- @Override /* Serializer */
- public RdfSerializerContext createContext(ObjectMap properties, Method javaMethod) {
- return new RdfSerializerContext(getBeanContext(), sp, xsp, rsp, properties, javaMethod);
- }
-
- @Override /* CoreApi */
- public RdfSerializer setProperty(String property, Object value) throws LockedException {
- checkLock();
- if (! rsp.setProperty(property, value))
- if (! xsp.setProperty(property, value))
- super.setProperty(property, value);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfSerializer setProperties(ObjectMap properties) throws LockedException {
- for (Map.Entry<String,Object> e : properties.entrySet())
- setProperty(e.getKey(), e.getValue());
- return this;
- }
-
- @Override /* CoreApi */
- public RdfSerializer addNotBeanClasses(Class<?>...classes) throws LockedException {
- super.addNotBeanClasses(classes);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfSerializer addFilters(Class<?>...classes) throws LockedException {
- super.addFilters(classes);
- return this;
- }
-
- @Override /* CoreApi */
- public <T> RdfSerializer addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException {
- super.addImplClass(interfaceClass, implClass);
- return this;
- }
-
- @Override /* CoreApi */
- public RdfSerializer setClassLoader(ClassLoader classLoader) throws LockedException {
- super.setClassLoader(classLoader);
- return this;
- }
-
- @Override /* Lockable */
- public RdfSerializer lock() {
- super.lock();
- return this;
- }
-
- @Override /* Lockable */
- public RdfSerializer clone() {
- try {
- RdfSerializer c = (RdfSerializer)super.clone();
- c.rsp = rsp.clone();
- return c;
- } catch (CloneNotSupportedException e) {
- throw new RuntimeException(e); // Shouldn't happen
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class
deleted file mode 100755
index 6d3e9ae..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java
deleted file mode 100755
index 82d95c5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerContext.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import static com.ibm.juno.core.jena.Constants.*;
-import static com.ibm.juno.core.jena.RdfProperties.*;
-import static com.ibm.juno.core.jena.RdfSerializerProperties.*;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-import com.hp.hpl.jena.rdf.model.*;
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Context object that lives for the duration of a single serialization of {@link RdfSerializer}.
- * <p>
- * See {@link SerializerContext} for details.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfSerializerContext extends XmlSerializerContext {
-
- final String rdfLanguage;
- final Namespace junoNs, junoBpNs;
- final boolean addLiteralTypes, addRootProperty, useXmlNamespaces, looseCollection;
- final Property pRoot, pValue, pClass;
- final Model model;
- final RDFWriter writer;
- final RdfCollectionFormat collectionFormat;
-
- /**
- * Constructor.
- * @param beanContext The bean context being used by the serializer.
- * @param sp Default general serializer properties.
- * @param xsp Default XML serializer properties.
- * @param jsp Default Jena serializer properties.
- * @param op Override properties.
- * @param javaMethod Java method that invoked this serializer.
- * When using the REST API, this is the Java method invoked by the REST call.
- * Can be used to access annotations defined on the method or class.
- */
- protected RdfSerializerContext(BeanContext beanContext, SerializerProperties sp, XmlSerializerProperties xsp, RdfSerializerProperties jsp, ObjectMap op, Method javaMethod) {
- super(beanContext, sp, xsp, op, javaMethod);
- ObjectMap jenaSettings = new ObjectMap();
- jenaSettings.put("rdfXml.tab", isUseIndentation() ? 2 : 0);
- jenaSettings.put("rdfXml.attributeQuoteChar", Character.toString(getQuoteChar()));
- jenaSettings.putAll(jsp.jenaSettings);
- if (op == null || op.isEmpty()) {
- this.rdfLanguage = jsp.rdfLanguage;
- this.junoNs = jsp.junoNs;
- this.junoBpNs = jsp.junoBpNs;
- this.addLiteralTypes = jsp.addLiteralTypes;
- this.addRootProperty = jsp.addRootProperty;
- this.collectionFormat = jsp.collectionFormat;
- this.looseCollection = jsp.looseCollection;
- this.useXmlNamespaces = jsp.useXmlNamespaces;
- } else {
- this.rdfLanguage = op.getString(RDF_language, jsp.rdfLanguage);
- this.junoNs = (op.containsKey(RDF_junoNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoNs)) : jsp.junoNs);
- this.junoBpNs = (op.containsKey(RDF_junoBpNs) ? NamespaceFactory.parseNamespace(op.get(RDF_junoBpNs)) : jsp.junoBpNs);
- this.addLiteralTypes = op.getBoolean(RDF_addLiteralTypes, jsp.addLiteralTypes);
- this.addRootProperty = op.getBoolean(RDF_addRootProperty, jsp.addRootProperty);
- for (Map.Entry<String,Object> e : op.entrySet()) {
- String key = e.getKey();
- if (key.startsWith("Rdf.jena."))
- jenaSettings.put(key.substring(9), e.getValue());
- }
- this.collectionFormat = RdfCollectionFormat.valueOf(op.getString(RDF_collectionFormat, "DEFAULT"));
- this.looseCollection = op.getBoolean(RDF_looseCollection, jsp.looseCollection);
- this.useXmlNamespaces = op.getBoolean(RDF_useXmlNamespaces, jsp.useXmlNamespaces);
- }
- this.model = ModelFactory.createDefaultModel();
- addModelPrefix(junoNs);
- addModelPrefix(junoBpNs);
- for (Namespace ns : this.getNamespaces())
- addModelPrefix(ns);
- this.pRoot = model.createProperty(junoNs.getUri(), RDF_junoNs_ROOT);
- this.pValue = model.createProperty(junoNs.getUri(), RDF_junoNs_VALUE);
- this.pClass = model.createProperty(junoNs.getUri(), RDF_junoNs_CLASS);
- writer = model.getWriter(rdfLanguage);
-
- // Only apply properties with this prefix!
- String propPrefix = RdfProperties.LANG_PROP_MAP.get(rdfLanguage);
- if (propPrefix == null)
- throw new RuntimeException("Unknown RDF language encountered: '"+rdfLanguage+"'");
-
- for (Map.Entry<String,Object> e : jenaSettings.entrySet())
- if (e.getKey().startsWith(propPrefix))
- writer.setProperty(e.getKey().substring(propPrefix.length()), e.getValue());
- }
-
- /**
- * Adds the specified namespace as a model prefix.
- * @param ns The XML namespace.
- */
- public void addModelPrefix(Namespace ns) {
- model.setNsPrefix(ns.getName(), ns.getUri());
- }
-
- /**
- * Returns the format for serializing collections.
- *
- * @return The format for serializing collections.
- */
- protected RdfCollectionFormat getCollectionFormat() {
- return collectionFormat;
- }
-
- /**
- * Returns <jk>true</jk> if RDF serializer should use XML serializer namespaces.
- *
- * @return <jk>true</jk> if RDF serializer should use XML serializer namespaces.
- */
- protected boolean isUseXmlNamespaces() {
- return useXmlNamespaces;
- }
-
- /**
- * Returns the {@link RdfProperties#RDF_looseCollection} property value.
- *
- * @return The {@link RdfProperties#RDF_looseCollection} property value.
- */
- protected boolean isLooseCollection() {
- return looseCollection;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class
deleted file mode 100755
index e5fb1bc..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java
deleted file mode 100755
index fd5ffbc..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfSerializerProperties.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014, 2015. All Rights Reserved.
- *
- * The source code for this program is not published or otherwise
- * divested of its trade secrets, irrespective of what has been
- * deposited with the U.S. Copyright Office.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.serializer.*;
-
-/**
- * Configurable properties on the {@link RdfSerializer} class.
- * <p>
- * Use the {@link RdfSerializer#setProperty(String, Object)} method to set property values.
- * <p>
- * In addition to these properties, the following properties are also applicable for {@link RdfSerializer}.
- * <ul>
- * <li>{@link RdfProperties}
- * <li>{@link SerializerProperties}
- * <li>{@link BeanContextProperties}
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class RdfSerializerProperties extends RdfProperties implements Cloneable {
-
- /**
- * Add XSI data types to non-<code>String</code> literals ({@link Boolean}, default=<jk>false</jk>).
- */
- public static final String RDF_addLiteralTypes = "RdfSerializer.addLiteralTypes";
-
- /**
- * Add RDF root identifier property to root node ({@link Boolean}, default=<jk>false</jk>).
- * <p>
- * When enabled an RDF property <code>http://www.ibm.com/juno/root</code> is added with a value of <js>"true"</js>
- * to identify the root node in the graph.
- * This helps locate the root node during parsing.
- * <p>
- * If disabled, the parser has to search through the model to find any resources without
- * incoming predicates to identify root notes, which can introduce a considerable performance
- * degradation.
- */
- public static final String RDF_addRootProperty = "RdfSerializer.addRootProperty";
-
- boolean addLiteralTypes = false, addRootProperty = false;
-
- /**
- * Sets the specified property value.
- * @param property The property name.
- * @param value The property value.
- * @return <jk>true</jk> if property name was valid and property was set.
- */
- @Override /* RdfProperties */
- public boolean setProperty(String property, Object value) {
- if (property.equals(RDF_addLiteralTypes))
- addLiteralTypes = BeanContext.DEFAULT.convertToType(value, boolean.class);
- else if (property.equals(RDF_addRootProperty))
- addRootProperty = BeanContext.DEFAULT.convertToType(value, boolean.class);
- else
- return super.setProperty(property, value);
- return true;
- }
-
-
- //--------------------------------------------------------------------------------
- // Overridden methods
- //--------------------------------------------------------------------------------
-
- @Override /* Cloneable */
- public RdfSerializerProperties clone() {
- try {
- return (RdfSerializerProperties)super.clone();
- } catch (CloneNotSupportedException e) {
- throw new RuntimeException(e); // Shouldn't happen.
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class
deleted file mode 100755
index c20f2c9..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.class and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java
deleted file mode 100755
index 2e34b81..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/RdfUtils.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2015. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights: Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-package com.ibm.juno.core.jena;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.jena.annotation.*;
-import com.ibm.juno.core.xml.*;
-
-/**
- * Utility classes.
- */
-public class RdfUtils {
-
- /**
- * Find the namespace given a list of <ja>@Rdf</ja> and <ja>@RdfSchema</ja> annotations.
- * The annotations should be a child-to-parent ordering of annotations found on
- * a class or method.
- *
- * @param rdfs The <code>@Rdf</code> annotations to search.
- * @param schemas The list of known RDF schemas.
- * @return The resolved namespace, or <jk>null</jk> if the namespace could not be resolved.
- */
- public static Namespace findNamespace(List<Rdf> rdfs, List<RdfSchema> schemas) {
-
- for (Rdf rdf : rdfs) {
- Namespace ns = findNamespace(rdf.prefix(), rdf.namespace(), rdfs, schemas);
- if (ns != null)
- return ns;
- }
-
- for (RdfSchema schema : schemas) {
- Namespace ns = findNamespace(schema.prefix(), schema.namespace(), null, schemas);
- if (ns != null)
- return ns;
- }
-
- return null;
- }
-
- private static Namespace findNamespace(String prefix, String ns, List<Rdf> rdfs, List<RdfSchema> schemas) {
-
- // If both prefix and namespace specified, use that Namespace mapping.
- if (! (prefix.isEmpty() || ns.isEmpty()))
- return NamespaceFactory.get(prefix, ns);
-
- // If only prefix specified, need to search for namespaceURI.
- if (! prefix.isEmpty()) {
- if (rdfs != null)
- for (Rdf rdf2 : rdfs)
- if (rdf2.prefix().equals(prefix) && ! rdf2.namespace().isEmpty())
- return NamespaceFactory.get(prefix, rdf2.namespace());
- for (RdfSchema schema : schemas) {
- if (schema.prefix().equals(prefix) && ! schema.namespace().isEmpty())
- return NamespaceFactory.get(prefix, schema.namespace());
- for (RdfNs rdfNs : schema.rdfNs())
- if (rdfNs.prefix().equals(prefix))
- return NamespaceFactory.get(prefix, rdfNs.namespaceURI());
- }
- throw new BeanRuntimeException("Found @Rdf.prefix annotation with no matching URI. prefix='"+prefix+"'");
- }
-
- // If only namespaceURI specified, need to search for prefix.
- if (! ns.isEmpty()) {
- if (rdfs != null)
- for (Rdf rdf2 : rdfs)
- if (rdf2.namespace().equals(ns) && ! rdf2.prefix().isEmpty())
- return NamespaceFactory.get(rdf2.prefix(), ns);
- for (RdfSchema schema : schemas) {
- if (schema.namespace().equals(ns) && ! schema.prefix().isEmpty())
- return NamespaceFactory.get(schema.prefix(), ns);
- for (RdfNs rdfNs : schema.rdfNs())
- if (rdfNs.namespaceURI().equals(ns))
- return NamespaceFactory.get(rdfNs.prefix(), ns);
- }
- }
-
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.class
deleted file mode 100755
index afb35fb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/jena/annotation/Rdf.class and /dev/null differ