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:40 UTC
[22/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/dto/cognos/DataSet.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java
deleted file mode 100755
index 3b107b5..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/DataSet.java
+++ /dev/null
@@ -1,188 +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.dto.cognos;
-
-import java.util.*;
-
-import com.ibm.juno.core.*;
-import com.ibm.juno.core.annotation.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents a Cognos dataset.
- * <p>
- * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
- * <p class='bcode'>
- * <xt><?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?></xt>
- * <xt><c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>></xt>
- * <xt><c:metadata></xt>
- * <xt><c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/></xt>
- * <xt><c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt>
- * <xt><c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt>
- * <xt></c:metadata></xt>
- * <xt><c:data></xt>
- * <xt><c:row></xt>
- * <xt><c:value></xt>Barack Obama<xt></c:value></xt>
- * <xt><c:value></xt>52<xt></c:value></xt>
- * <xt><c:value></xt>2<xt></c:value></xt>
- * <xt></c:row></xt>
- * <xt><c:row></xt>
- * <xt><c:value></xt>George Walker Bush<xt></c:value></xt>
- * <xt><c:value></xt>67<xt></c:value></xt>
- * <xt><c:value></xt>2<xt></c:value></xt>
- * <xt></c:row></xt>
- * <xt></c:data></xt>
- * <xt></c:dataset></xt>
- * </p>
- * <p>
- * Only 2-dimentional POJOs (arrays or collections of maps or beans) can be serialized to Cognos.
- *
- * <h6 class='topic'>Example</h6>
- * <p>
- * The construct shown above is a serialized <code>AddressBook</code> object which is a subclass of <code>LinkedList<Person></code>.
- * The code for generating the XML is as follows...
- * </p>
- * <p class='bcode'>
- * Column[] items = {
- * <jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
- * <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
- * <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
- * .addFilter(
- * <jk>new</jk> PojoFilter<Person,Integer>() {
- * <ja>@Override</ja>
- * <jk>public</jk> Integer filter(Person p) {
- * <jk>return</jk> p.<jf>addresses</jf>.size();
- * }
- * }
- * )
- * };
- *
- * DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
- *
- * String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="dataset")
-@SuppressWarnings("unchecked")
-public class DataSet {
-
- private Column[] metaData;
- private List<Row> data;
-
- /** Bean constructor. */
- public DataSet() {}
-
- /**
- * Constructor.
- *
- * @param columns The meta-data that represents the columns in the dataset.
- * @param o The POJO being serialized to Cognos.
- * Must be an array/collection of beans/maps.
- * @param beanContext The bean context used to convert POJOs to strings.
- * @throws Exception An error occurred trying to serialize the POJO.
- */
- public DataSet(Column[] columns, Object o, BeanContext beanContext) throws Exception {
- metaData = columns;
- data = new LinkedList<Row>();
- if (o != null) {
- if (o.getClass().isArray())
- o = Arrays.asList((Object[])o);
- if (o instanceof Collection) {
- Collection<?> c = (Collection<?>)o;
- for (Object o2 : c) {
- Row r = new Row();
- Map<?,?> m = null;
- if (o2 instanceof Map)
- m = (Map<?,?>)o2;
- else
- m = beanContext.forBean(o2);
- for (Column col : columns) {
- Object v;
- if (col.filter != null)
- v = col.filter.filter(o2);
- else
- v = m.get(col.getName());
- r.add(v == null ? null : v.toString());
- }
- data.add(r);
- }
- }
- }
- }
-
- /**
- * Represents a row of data.
- * <p>
- * When serialized to XML, creates the following construct (example pulled from <code>AddressBookResource</code>):
- * <p class='bcode'>
- * <xt><row></xt>
- * <xt><value></xt>Barack Obama<xt></value></xt>
- * <xt><value></xt>52<xt></value></xt>
- * <xt><value></xt>2<xt></value></xt>
- * <xt></row></xt>
- * </p>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
- @Xml(name="row", childName="value")
- public static class Row extends LinkedList<String> {
- private static final long serialVersionUID = 1L;
- }
-
-
- //--------------------------------------------------------------------------------
- // Bean properties
- //--------------------------------------------------------------------------------
-
- /**
- * Bean property getter: <property>metadata</property>.
- *
- * @return The value of the <property>metadata</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- @BeanProperty(name="metadata")
- public Column[] getMetaData() {
- return metaData;
- }
-
- /**
- * Bean property setter: <property>metadata</property>.
- *
- * @param metaData The new value for the <property>metadata</property> property on this bean.
- * @return This object (for method chaining).
- */
- @BeanProperty(name="metadata")
- public DataSet setMetaData(Column[] metaData) {
- this.metaData = metaData;
- return this;
- }
-
- /**
- * Bean property getter: <property>data</property>.
- *
- * @return The value of the <property>data</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- @BeanProperty(name="data")
- public List<Row> getData() {
- return data;
- }
-
- /**
- * Bean property setter: <property>data</property>.
- *
- * @param data The new value for the <property>data</property> property on this bean.
- * @return This object (for method chaining).
- */
- @BeanProperty(name="data")
- public DataSet setData(List<Row> data) {
- this.data = data;
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png
deleted file mode 100755
index fd63c23..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/HTML.png 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/dto/cognos/doc-files/JSON.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png
deleted file mode 100755
index 44785ad..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/JSON.png 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/dto/cognos/doc-files/RDFXML.png
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png
deleted file mode 100755
index 081e949..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/doc-files/RDFXML.png 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/dto/cognos/package-info.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.class
deleted file mode 100755
index 76e935c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.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/dto/cognos/package-info.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java
deleted file mode 100755
index 9919e9b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package-info.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/* *****************************************************************************
- * Licensed Materials - Property of IBM
- * (c) Copyright IBM Corporation 2014. All Rights Reserved.
- *
- * Note to U.S. Government Users Restricted Rights: Use,
- * duplication or disclosure restricted by GSA ADP Schedule
- * Contract with IBM Corp.
- *******************************************************************************/
-// XML namespaces used in this package
-@XmlSchema(prefix="cognos", namespace="http://developer.cognos.com/schemas/xmldata/1/")
-package com.ibm.juno.core.dto.cognos;
-import com.ibm.juno.core.xml.annotation.*;
-
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
deleted file mode 100755
index 2b7cf71..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/cognos/package.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE HTML>
-<!--
- Licensed Materials - Property of IBM
- (c) Copyright IBM Corporation 2014. All Rights Reserved.
-
- Note to U.S. Government Users Restricted Rights:
- Use, duplication or disclosure restricted by GSA ADP Schedule
- Contract with IBM Corp.
- -->
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style type="text/css">
- /* For viewing in Page Designer */
- @IMPORT url("../../../../../../javadoc.css");
-
- /* For viewing in REST interface */
- @IMPORT url("../htdocs/javadoc.css");
- body {
- margin: 20px;
- }
- </style>
- <script>
- /* Replace all @code and @link tags. */
- window.onload = function() {
- document.body.innerHTML = document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>');
- document.body.innerHTML = document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g, '<code>$3</code>');
- }
- </script>
-</head>
-<body>
-<p>Cognos Data Transfer Objects</p>
-<script>
- function toggle(x) {
- var div = x.nextSibling;
- while (div != null && div.nodeType != 1)
- div = div.nextSibling;
- if (div != null) {
- var d = div.style.display;
- if (d == 'block' || d == '') {
- div.style.display = 'none';
- x.className += " closed";
- } else {
- div.style.display = 'block';
- x.className = x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
- }
- }
- }
-</script>
-<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
- <li><p><a class='doclink' href='#CognosSerializer'>Cognos serialization support</a></p>
- <li><p><a class='doclink' href='#CognosParser'>Cognos parsing support</a></p>
-</ol>
-
-<!-- ======================================================================================================== -->
-<a id="CognosSerializer"></a>
-<h2 class='topic' onclick='toggle(this)'>1 - Cognos serialization support</h2>
-<div class='topic'>
- <p>
- The {@link com.ibm.juno.core.dto.cognos.DataSet} class is a DTO used to convert POJO models directly to Cognos-XML.
- </p>
- <p>
- Because of the nature of the Cognos XML syntax, only <i>2-dimensional</i> POJO data structures can be serialized to Cognos-XML.
- </p>
- <p>
- For example...
- </p>
- <ul class='normal'>
- <li><code>Collection<Bean></code>
- <li><code>Collection<Map></code>
- <li>{@code MyBean[]}
- <li>{@code HashMap[]}
- </ul>
- <h6 class='topic'>Example</h6>
- <p>
- The following example shows how to generate Cognos-XML from a POJO.
- The example uses the <a class='doclink' href='../../doc-files/AddressBook.html'>AddressBook</a> sample POJO.
- It should be noted that since the {@code AddressBook} class is a subclass of {@code LinkedList}, it fulfills
- the requirement of being a tabular data structure.
- </p>
- <p class='bcode'>
- <jc>// Create our POJO with some entries.</jc>
- AddressBook addressBook = <jk>new</jk> AddressBook();
- addressBook.add(
- <jk>new</jk> Person(<js>"Barack Obama"</js>, <js>"Aug 4, 1961"</js>,
- <jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>true</jk>),
- <jk>new</jk> Address(<js>"5046 S Greenwood Ave"</js>, <js>"Chicago"</js>, <js>"IL"</js>, 60615, <jk>false</jk>)
- )
- );
- addressBook.add(
- <jk>new</jk> Person(<js>"George Walker Bush"</js>, <js>"Jul 6, 1946"</js>,
- <jk>new</jk> Address(<js>"43 Prairie Chapel Rd"</js>, <js>"Crawford"</js>, <js>"TX"</js>, 76638, <jk>true</jk>),
- <jk>new</jk> Address(<js>"1600 Pennsylvania Ave"</js>, <js>"Washington"</js>, <js>"DC"</js>, 20500, <jk>false</jk>)
- )
- );
-
- <jc>// Define the Cognos metadata</jc>
- Column[] items = {
- <jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255),
- <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>),
- <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>)
- .addFilter(
- <jk>new</jk> PojoFilter<Person,Integer>() {
- <ja>@Override</ja>
- <jk>public</jk> Integer filter(Person p) {
- <jk>return</jk> p.<jf>addresses</jf>.size();
- }
- }
- )
- };
-
- <jc>// Create the Cognos DataSet object</jc>
- DataSet ds = <jk>new</jk> DataSet(items, <jsf>addressBook</jsf>, BeanContext.<jsf>DEFAULT</jsf>);
-
- <jc>// Serialize it to XML</jc>
- String xml = XmlSerializer.<jsf>DEFAULT_SQ</jsf>.serialize(ds);
- </p>
- <p>
- When run, this code produces the following XML...
- </p>
- <p class='bcode'>
- <xt><?xml</xt> <xa>version</xa>=<xs>'1.0'</xs> <xa>encoding</xa>=<xs>'UTF-8'</xs><xt>?></xt>
- <xt><c:dataset <xa>xmlns:c</xa>=<xs>'http://developer.cognos.com/schemas/xmldata/1/'</xs>></xt>
- <xt><c:metadata></xt>
- <xt><c:item</xt> <xa>name</xa>=<xs>'name'</xs> <xa>type</xa>=<xs>'xs:String'</xs> <xa>length</xa>=<xs>'255'</xs><xt>/></xt>
- <xt><c:item</xt> <xa>name</xa>=<xs>'age'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt>
- <xt><c:item</xt> <xa>name</xa>=<xs>'numAddresses'</xs> <xa>type</xa>=<xs>'xs:int'</xs><xt>/></xt>
- <xt></c:metadata></xt>
- <xt><c:data></xt>
- <xt><c:row></xt>
- <xt><c:value></xt>Barack Obama<xt></c:value></xt>
- <xt><c:value></xt>52<xt></c:value></xt>
- <xt><c:value></xt>2<xt></c:value></xt>
- <xt></c:row></xt>
- <xt><c:row></xt>
- <xt><c:value></xt>George Walker Bush<xt></c:value></xt>
- <xt><c:value></xt>67<xt></c:value></xt>
- <xt><c:value></xt>2<xt></c:value></xt>
- <xt></c:row></xt>
- <xt></c:data></xt>
- <xt></c:dataset></xt>
- </p>
- <h6 class='topic'>Other data formats</h6>
- <p>
- The following shows examples of what this data structure looks like when serialized to other formats:
- </p>
- <h6 class='figure'>HTML</h6>
- <img class='bordered' src='doc-files/HTML.png'>
- <h6 class='figure'>JSON</h6>
- <img class='bordered' src='doc-files/JSON.png'>
- <h6 class='figure'>RDF/XML</h6>
- <img class='bordered' src='doc-files/RDFXML.png'>
-</div>
-
-<!-- ======================================================================================================== -->
-<a id="CognosParser"></a>
-<h2 class='topic' onclick='toggle(this)'>2 - Cognos parsing support</h2>
-<div class='topic'>
- <p>
- The {@link com.ibm.juno.core.dto.cognos.DataSet} class can be reconstructed from Cognos/XML using one of the standard XML parsers.
- </p>
- <h6 class='topic'>Example</h6>
- <p class='bcode'>
- <jc>// Parse XML back into original DataSet</jc>
- DataSet ds = XmlParser.<jsf>DEFAULT</jsf>.parse(xml, DataSet.<jk>class</jk>);
- </p>
-</div>
-</body>
-</html>
\ 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/dto/jsonschema/JsonType.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.class
deleted file mode 100755
index 0ad6388..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.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/dto/jsonschema/JsonType.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java
deleted file mode 100755
index c9daf4c..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonType.java
+++ /dev/null
@@ -1,103 +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.dto.jsonschema;
-
-/**
- * Represents possible JSON types in the JSON-Schema core specification.
- * <p>
- * Implements custom <code>toString()</code> and <code>fromString(String)</code> methods
- * that override the default serialization/parsing behavior of <code>Enum</code> types
- * so that they are represented in lowercase form (as per the specification).
- *
- * <h6 class='figure'>Example</h6>
- * <p class='bcode'>
- * // Produces 'number', not 'NUMBER'.
- * String json = JsonSerializer.DEFAULT.serialize(JsonType.NUMBER);
- * </p>
- *
- * <p>
- * Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public enum JsonType {
-
- /** array */
- ARRAY("array"),
-
- /** boolean */
- BOOLEAN("boolean"),
-
- /** integer */
- INTEGER("integer"),
-
- /** null */
- NULL("null"),
-
- /** number */
- NUMBER("number"),
-
- /** object */
- OBJECT("object"),
-
- /** string */
- STRING("string"),
-
- /** any */
- ANY("any");
-
- private final String value; // The serialized format of the enum.
-
- private JsonType(String value) {
- this.value = value;
- }
-
- /**
- * Returns the lowercase form of this enum that's compatible with the JSON-Schema specification.
- */
- @Override /* Object */
- public String toString() {
- return value;
- }
-
- /**
- * Converts the specified lowercase form of the enum back into an <code>Enum</code>.
- *
- * @param value The lowercase form of the enum (e.g. <js>"array"</js>).
- * @return The matching <code>Enum</code>, or <jk>null</jk> if no match found.
- */
- public static JsonType fromString(String value) {
- if (value == null || value.length() < 4)
- return null;
- char c = value.charAt(0);
- if (c == 'a') {
- if (value.equals("array"))
- return ARRAY;
- if (value.equals("any"))
- return ANY;
- }
- if (c == 'b' && value.equals("boolean"))
- return BOOLEAN;
- if (c == 'i' && value.equals("integer"))
- return INTEGER;
- if (c == 'n') {
- c = value.charAt(2);
- if (c == 'l' && value.equals("null"))
- return NULL;
- if (c == 'm' && value.equals("number"))
- return NUMBER;
- return null;
- }
- if (c == 'o' && value.equals("object"))
- return OBJECT;
- if (c == 's' && value.equals("string"))
- return STRING;
- 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/dto/jsonschema/JsonTypeArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.class
deleted file mode 100755
index 5a10330..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.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/dto/jsonschema/JsonTypeArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java
deleted file mode 100755
index d383162..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/JsonTypeArray.java
+++ /dev/null
@@ -1,50 +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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link JsonType} objects.
- * <p>
- * Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public final class JsonTypeArray extends LinkedList<JsonType> {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Default constructor.
- */
- public JsonTypeArray() {}
-
- /**
- * Constructor with predefined types to add to this list.
- *
- * @param types The list of types to add to the list.
- */
- public JsonTypeArray(JsonType...types) {
- addAll(types);
- }
-
- /**
- * Convenience method for adding one or more {@link JsonType} objects to
- * this array.
- *
- * @param types The {@link JsonType} objects to add to this array.
- * @return This object (for method chaining).
- */
- public JsonTypeArray addAll(JsonType...types) {
- for (JsonType t : types)
- add(t);
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$1.class
deleted file mode 100755
index d967e1c..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample$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/dto/jsonschema/Sample.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.class
deleted file mode 100755
index 375479e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.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/dto/jsonschema/Sample.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java
deleted file mode 100755
index 636755d..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Sample.java
+++ /dev/null
@@ -1,63 +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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-
-import com.ibm.juno.core.json.*;
-import com.ibm.juno.core.utils.*;
-
-@SuppressWarnings("serial")
-class Sample {
-
- public static void main(String[] args) {
-
- // Create a SchemaMap for looking up schemas.
- SchemaMap schemaMap = new SchemaMap() {
-
- @Override /* SchemaMap */
- public Schema load(URI uri) {
- Reader r = null;
- try {
- r = new InputStreamReader(uri.toURL().openStream(), IOUtils.UTF8);
- Schema s = JsonParser.DEFAULT.parse(r, -1, Schema.class);
- return s;
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (r != null) {
- try {
- r.close();
- } catch (IOException e) {
- }
- }
- }
- }
- };
-
- // Get schema from the schema map.
- Schema purchaseOrderSchema = schemaMap.get("http://www.ibm.com/purchase-order/PurchaseOrder#");
-
- JsonType streetType = purchaseOrderSchema
- .getProperty("address",true) // Get "address" property, resolved to Address schema.
- .getProperty("street") // Get "street" property.
- .getTypeAsJsonType(); // Get data type.
- System.err.println("streetType=" + streetType); // Prints "streetType=string"
-
- JsonType productIdType = purchaseOrderSchema
- .getProperty("product") // Get "product" property
- .getItemsAsSchemaArray() // Get "items".
- .get(0) // Get first entry.
- .resolve() // Resolve to Product schema.
- .getProperty("productId") // Get "productId" property.
- .getTypeAsJsonType(); // Get data type.
- System.err.println("productIdType=" + productIdType); // Prints "productIdType=number"
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.class
deleted file mode 100755
index 740164b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaArrayFilter.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/dto/jsonschema/Schema$BooleanOrSchemaFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.class
deleted file mode 100755
index f3f9e32..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$BooleanOrSchemaFilter.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/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.class
deleted file mode 100755
index df1cabb..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$JsonTypeOrJsonTypeArrayFilter.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/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.class
deleted file mode 100755
index 6000f8b..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema$SchemaOrSchemaArrayFilter.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/dto/jsonschema/Schema.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.class
deleted file mode 100755
index 496ead5..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.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/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java
deleted file mode 100755
index 7772f05..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/Schema.java
+++ /dev/null
@@ -1,1392 +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.dto.jsonschema;
-
-import java.net.URI;
-import java.util.*;
-
-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.serializer.*;
-import com.ibm.juno.core.xml.annotation.*;
-
-/**
- * Represents a top-level schema object bean in the JSON-Schema core specification.
- * <p>
- * Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-@Xml(name="schema")
-@SuppressWarnings("hiding")
-public class Schema {
- private String name; // Property name. Not serialized.
- private URI id;
- private URI schemaVersion;
- private String title;
- private String description;
- private JsonType typeJsonType; // JsonType representation of type
- private JsonTypeArray typeJsonTypeArray; // JsonTypeArray representation of type
- private Map<String,Schema> definitions;
- private Map<String,Schema> properties;
- private Map<String,Schema> patternProperties;
- private Map<String,Schema> dependencies;
- private Schema itemsSchema; // Schema representation of items
- private SchemaArray itemsSchemaArray; // SchemaArray representation of items
- private Number multipleOf;
- private Number maximum;
- private Boolean exclusiveMaximum;
- private Number minimum;
- private Boolean exclusiveMinimum;
- private Integer maxLength;
- private Integer minLength;
- private String pattern;
- private Boolean additionalItemsBoolean; // Boolean representation of additionalItems
- private SchemaArray additionalItemsSchemaArray; // SchemaArray representation of additionalItems
- private Integer maxItems;
- private Integer minItems;
- private Boolean uniqueItems;
- private Integer maxProperties;
- private Integer minProperties;
- private List<String> required;
- private Boolean additionalPropertiesBoolean; // Boolean representation of additionalProperties
- private Schema additionalPropertiesSchema; // Schema representation of additionalProperties
- private List<String> _enum;
- private List<Schema> allOf;
- private List<Schema> anyOf;
- private List<Schema> oneOf;
- private Schema not;
- private URI ref;
- private SchemaMap schemaMap;
- private Schema master = this;
-
- /**
- * Default constructor.
- */
- public Schema() {}
-
- //--------------------------------------------------------------------------------
- // Bean properties
- //--------------------------------------------------------------------------------
-
- /**
- * Bean property getter: <property>name</property>.
- *
- * @return The value of the <property>name</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- @BeanIgnore
- public String getName() {
- return name;
- }
-
- /**
- * Bean property setter: <property>name</property>.
- *
- * @param name The new value for the <property>name</property> property on this bean.
- * @return This object (for method chaining).
- */
- @BeanIgnore
- public Schema setName(String name) {
- this.name = name;
- return this;
- }
-
- /**
- * Bean property getter: <property>id</property>.
- *
- * @return The value of the <property>id</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public URI getId() {
- return id;
- }
-
- /**
- * Bean property setter: <property>id</property>.
- *
- * @param id The new value for the <property>id</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setId(URI id) {
- this.id = id;
- return this;
- }
-
- /**
- * Bean property setter: <property>id</property>.
- *
- * @param id The new value for the <property>id</property> property on this bean.
- * The parameter must be a valid URI. It can be <jk>null</jk>.
- * @return This object (for method chaining).
- */
- public Schema setId(String id) {
- return setId(id == null ? null : URI.create(id));
- }
-
- /**
- * Bean property getter: <property>$schema</property>.
- *
- * @return The value of the <property>$schema</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- @BeanProperty(name="$schema")
- public URI getSchemaVersionUri() {
- return schemaVersion;
- }
-
- /**
- * Bean property setter: <property>$schema</property>.
- *
- * @param schemaVersion The new value for the <property>schemaVersion</property> property on this bean.
- * @return This object (for method chaining).
- */
- @BeanProperty(name="$schema")
- public Schema setSchemaVersionUri(URI schemaVersion) {
- this.schemaVersion = schemaVersion;
- return this;
- }
-
- /**
- * Bean property setter: <property>schemaVersion</property>.
- *
- * @param schemaVersion The new value for the <property>schemaVersion</property> property on this bean.
- * The parameter must be a valid URI. It can be <jk>null</jk>.
- * @return This object (for method chaining).
- */
- public Schema setSchemaVersionUri(String schemaVersion) {
- return setSchemaVersionUri(schemaVersion == null ? null : URI.create(schemaVersion));
- }
-
- /**
- * Bean property getter: <property>title</property>.
- *
- * @return The value of the <property>title</property> property, or <jk>null</jk> if it is not set.
- */
- public String getTitle() {
- return title;
- }
-
- /**
- * Bean property setter: <property>title</property>.
- *
- * @param title The new value for the <property>title</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setTitle(String title) {
- this.title = title;
- return this;
- }
-
- /**
- * Bean property getter: <property>description</property>.
- *
- * @return The value of the <property>description</property> property, or <jk>null</jk> if it is not set.
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * Bean property setter: <property>description</property>.
- *
- * @param description The new value for the <property>description</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setDescription(String description) {
- this.description = description;
- return this;
- }
-
- /**
- * Bean property getter: <property>type</property>.
- *
- * @return The value of the <property>type</property> property on this bean, or <jk>null</jk> if it is not set.
- * Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.
- */
- @BeanProperty(filter=JsonTypeOrJsonTypeArrayFilter.class)
- public Object getType() {
- if (typeJsonType != null)
- return typeJsonType;
- return typeJsonTypeArray;
- }
-
- /**
- * Bean property getter: <property>type</property>.
- * <p>
- * Convenience method for returning the <property>type</property> property when it is a {@link JsonType} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link JsonTypeArray}.
- */
- @BeanIgnore
- public JsonType getTypeAsJsonType() {
- return typeJsonType;
- }
-
- /**
- * Bean property getter: <property>type</property>.
- * <p>
- * Convenience method for returning the <property>type</property> property when it is a {@link JsonTypeArray} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link JsonType}.
- */
- @BeanIgnore
- public JsonTypeArray getTypeAsJsonTypeArray() {
- return typeJsonTypeArray;
- }
-
- /**
- * Bean property setter: <property>type</property>.
- *
- * @param type The new value for the <property>type</property> property on this bean.
- * This object must be of type {@link JsonType} or {@link JsonTypeArray}.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If invalid object type passed in.
- */
- public Schema setType(Object type) {
- this.typeJsonType = null;
- this.typeJsonTypeArray = null;
- if (type != null) {
- if (type instanceof JsonType)
- this.typeJsonType = (JsonType)type;
- else if (type instanceof JsonTypeArray)
- this.typeJsonTypeArray = (JsonTypeArray)type;
- else
- throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in. Must be one of the following: SimpleType, SimpleTypeArray", type.getClass().getName());
- }
- return this;
- }
-
- /**
- * Bean property appender: <property>type</property>.
- *
- * @param types The list of items to append to the <property>type</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addTypes(JsonType...types) {
- if (this.typeJsonTypeArray == null)
- this.typeJsonTypeArray = new JsonTypeArray();
- this.typeJsonTypeArray.addAll(types);
- return this;
- }
-
- /**
- * Used during parsing to convert the <property>type</property> property to the correct class type.
- * <ul>
- * <li>If parsing a JSON-array, converts to a {@link JsonTypeArray}.
- * <li>If parsing a JSON-object, converts to a {@link JsonType}.
- * </ul>
- * Serialization method is a no-op.
- */
- public static class JsonTypeOrJsonTypeArrayFilter extends PojoFilter<Object,Object> {
-
- @Override /* PojoFilter */
- public Object filter(Object o) throws SerializeException {
- return o;
- }
-
- @Override /* PojoFilter */
- public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
- BeanContext bc = getBeanContext();
- ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(JsonTypeArray.class) : bc.getClassMeta(JsonType.class));
- return bc.convertToType(o, cm);
- }
- }
-
- /**
- * Bean property getter: <property>definitions</property>.
- *
- * @return The value of the <property>definitions</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Map<String,Schema> getDefinitions() {
- return definitions;
- }
-
- /**
- * Bean property setter: <property>definitions</property>.
- *
- * @param definitions The new value for the <property>definitions</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setDefinitions(Map<String,Schema> definitions) {
- this.definitions = definitions;
- if (definitions != null)
- setMasterOn(definitions.values());
- return this;
- }
-
- /**
- * Bean property appender: <property>definitions</property>.
- *
- * @param name The key in the definitions map entry.
- * @param definition The value in the definitions map entry.
- * @return This object (for method chaining).
- */
- public Schema addDefinition(String name, Schema definition) {
- if (this.definitions == null)
- this.definitions = new LinkedHashMap<String,Schema>();
- this.definitions.put(name, definition);
- setMasterOn(definition);
- return this;
- }
-
- /**
- * Bean property getter: <property>properties</property>.
- *
- * @return The value of the <property>properties</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Map<String,Schema> getProperties() {
- return properties;
- }
-
- /**
- * Returns the property with the specified name.
- * This is equivalent to calling <property>getProperty(name, <jk>false</jk>)</property>.
- *
- * @param name The property name.
- * @return The property with the specified name, or <jk>null</jk> if no property is specified.
- */
- public Schema getProperty(String name) {
- return getProperty(name, false);
- }
-
- /**
- * Returns the property with the specified name.
- * If <property>resolve</property> is <jk>true</jk>, the property object will automatically be
- * resolved by calling {@link #resolve()}.
- * Therefore, <property>getProperty(name, <jk>true</jk>)</property> is equivalent to calling
- * <property>getProperty(name).resolve()</property>, except it's safe from a potential <property>NullPointerException</property>.
- *
- * @param name The property name.
- * @param resolve If <jk>true</jk>, calls {@link #resolve()} on object before returning.
- * @return The property with the specified name, or <jk>null</jk> if no property is specified.
- */
- public Schema getProperty(String name, boolean resolve) {
- if (properties == null)
- return null;
- Schema s = properties.get(name);
- if (s == null)
- return null;
- if (resolve)
- s = s.resolve();
- return s;
- }
-
- /**
- * Bean property setter: <property>properties</property>.
- *
- * @param properties The new value for the <property>properties</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setProperties(Map<String,Schema> properties) {
- this.properties = properties;
- if (properties != null)
- for (Map.Entry<String,Schema> e : properties.entrySet()) {
- Schema value = e.getValue();
- setMasterOn(value);
- value.setName(e.getKey());
- }
- return this;
- }
-
- /**
- * Bean property appender: <property>properties</property>.
- * <p>
- * Properties must have their <property>name</property> property set on them when using this method.
- *
- * @param properties The list of items to append to the <property>properties</property> property on this bean.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If property is found without a set <property>name</property> property.
- */
- public Schema addProperties(Schema...properties) {
- if (this.properties == null)
- this.properties = new LinkedHashMap<String,Schema>();
- for (Schema p : properties) {
- if (p.getName() == null)
- throw new BeanRuntimeException(Schema.class, "Invalid property passed to Schema.addProperties(). Property name was null.");
- setMasterOn(p);
- this.properties.put(p.getName(), p);
- }
- return this;
- }
-
- /**
- * Bean property getter: <property>patternProperties</property>.
- *
- * @return The value of the <property>patternProperties</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Map<String,Schema> getPatternProperties() {
- return patternProperties;
- }
-
- /**
- * Bean property setter: <property>patternProperties</property>.
- *
- * @param patternProperties The new value for the <property>patternProperties</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setPatternProperties(Map<String,Schema> patternProperties) {
- this.patternProperties = patternProperties;
- if (patternProperties != null)
- for (Map.Entry<String,Schema> e : patternProperties.entrySet()) {
- Schema s = e.getValue();
- setMasterOn(s);
- s.setName(e.getKey());
- }
- return this;
- }
-
- /**
- * Bean property appender: <property>patternProperties</property>.
- * <p>
- * Properties must have their <property>name</property> property set to the pattern string when using this method.
- *
- * @param properties The list of items to append to the <property>patternProperties</property> property on this bean.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If property is found without a set <property>name</property> property.
- */
- public Schema addPatternProperties(SchemaProperty...properties) {
- if (this.patternProperties == null)
- this.patternProperties = new LinkedHashMap<String,Schema>();
- for (Schema p : properties) {
- if (p.getName() == null)
- throw new BeanRuntimeException(Schema.class, "Invalid property passed to Schema.addProperties(). Property name was null.");
- setMasterOn(p);
- this.patternProperties.put(p.getName(), p);
- }
- return this;
- }
-
- /**
- * Bean property getter: <property>dependencies</property>.
- *
- * @return The value of the <property>dependencies</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Map<String,Schema> getDependencies() {
- return dependencies;
- }
-
- /**
- * Bean property setter: <property>dependencies</property>.
- *
- * @param dependencies The new value for the <property>dependencies</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setDependencies(Map<String,Schema> dependencies) {
- this.dependencies = dependencies;
- if (dependencies != null)
- setMasterOn(dependencies.values());
- return this;
- }
-
- /**
- * Bean property appender: <property>dependencies</property>.
- *
- * @param name The key of the entry in the dependencies map.
- * @param dependency The value of the entry in the dependencies map.
- * @return This object (for method chaining).
- */
- public Schema addDependency(String name, Schema dependency) {
- if (this.dependencies == null)
- this.dependencies = new LinkedHashMap<String,Schema>();
- this.dependencies.put(name, dependency);
- setMasterOn(dependency);
- return this;
- }
-
- /**
- * Bean property getter: <property>items</property>.
- *
- * @return The value of the <property>items</property> property on this bean, or <jk>null</jk> if it is not set.
- * Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.
- */
- @BeanProperty(filter=SchemaOrSchemaArrayFilter.class)
- public Object getItems() {
- if (itemsSchema != null)
- return itemsSchema;
- return itemsSchemaArray;
- }
-
- /**
- * Bean property getter: <property>items</property>.
- * <p>
- * Convenience method for returning the <property>items</property> property when it is a {@link Schema} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link SchemaArray}.
- */
- @BeanIgnore
- public Schema getItemsAsSchema() {
- return itemsSchema;
- }
-
- /**
- * Bean property getter: <property>items</property>.
- * <p>
- * Convenience method for returning the <property>items</property> property when it is a {@link SchemaArray} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Schema}.
- */
- @BeanIgnore
- public SchemaArray getItemsAsSchemaArray() {
- return itemsSchemaArray;
- }
-
- /**
- * Used during parsing to convert the <property>items</property> property to the correct class type.
- * <ul>
- * <li>If parsing a JSON-array, converts to a {@link SchemaArray}.
- * <li>If parsing a JSON-object, converts to a {@link Schema}.
- * </ul>
- * Serialization method is a no-op.
- */
- public static class SchemaOrSchemaArrayFilter extends PojoFilter<Object,Object> {
-
- @Override /* PojoFilter */
- public Object filter(Object o) throws SerializeException {
- return o;
- }
-
- @Override /* PojoFilter */
- public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
- BeanContext bc = getBeanContext();
- ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Schema.class));
- return bc.convertToType(o, cm);
- }
- }
-
- /**
- * Bean property setter: <property>items</property>.
- *
- * @param items The new value for the <property>items</property> property on this bean.
- * This object must be of type {@link Schema} or {@link SchemaArray}.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If invalid object type passed in.
- */
- public Schema setItems(Object items) {
- this.itemsSchema = null;
- this.itemsSchemaArray = null;
- if (items != null) {
- if (items instanceof Schema) {
- this.itemsSchema = (Schema)items;
- setMasterOn(this.itemsSchema);
- } else if (items instanceof SchemaArray) {
- this.itemsSchemaArray = (SchemaArray)items;
- setMasterOn(this.itemsSchemaArray);
- } else
- throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in. Must be one of the following: Schema, SchemaArray", items.getClass().getName());
- }
- return this;
- }
-
- /**
- * Bean property appender: <property>items</property>.
- *
- * @param items The list of items to append to the <property>items</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addItems(Schema...items) {
- if (this.itemsSchemaArray == null)
- this.itemsSchemaArray = new SchemaArray();
- this.itemsSchemaArray.addAll(items);
- setMasterOn(items);
- return this;
- }
-
- /**
- * Bean property getter: <property>multipleOf</property>.
- *
- * @return The value of the <property>multipleOf</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Number getMultipleOf() {
- return multipleOf;
- }
-
- /**
- * Bean property setter: <property>multipleOf</property>.
- *
- * @param multipleOf The new value for the <property>multipleOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMultipleOf(Number multipleOf) {
- this.multipleOf = multipleOf;
- return this;
- }
-
- /**
- * Bean property getter: <property>maximum</property>.
- *
- * @return The value of the <property>maximum</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Number getMaximum() {
- return maximum;
- }
-
- /**
- * Bean property setter: <property>maximum</property>.
- *
- * @param maximum The new value for the <property>maximum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMaximum(Number maximum) {
- this.maximum = maximum;
- return this;
- }
-
- /**
- * Bean property getter: <property>exclusiveMaximum</property>.
- *
- * @return The value of the <property>exclusiveMaximum</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Boolean isExclusiveMaximum() {
- return exclusiveMaximum;
- }
-
- /**
- * Bean property setter: <property>exclusiveMaximum</property>.
- *
- * @param exclusiveMaximum The new value for the <property>exclusiveMaximum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setExclusiveMaximum(Boolean exclusiveMaximum) {
- this.exclusiveMaximum = exclusiveMaximum;
- return this;
- }
-
- /**
- * Bean property getter: <property>minimum</property>.
- *
- * @return The value of the <property>minimum</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Number getMinimum() {
- return minimum;
- }
-
- /**
- * Bean property setter: <property>minimum</property>.
- *
- * @param minimum The new value for the <property>minimum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMinimum(Number minimum) {
- this.minimum = minimum;
- return this;
- }
-
- /**
- * Bean property getter: <property>exclusiveMinimum</property>.
- *
- * @return The value of the <property>exclusiveMinimum</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Boolean isExclusiveMinimum() {
- return exclusiveMinimum;
- }
-
- /**
- * Bean property setter: <property>exclusiveMinimum</property>.
- *
- * @param exclusiveMinimum The new value for the <property>exclusiveMinimum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setExclusiveMinimum(Boolean exclusiveMinimum) {
- this.exclusiveMinimum = exclusiveMinimum;
- return this;
- }
-
- /**
- * Bean property getter: <property>maxLength</property>.
- *
- * @return The value of the <property>maxLength</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMaxLength() {
- return maxLength;
- }
-
- /**
- * Bean property setter: <property>maxLength</property>.
- *
- * @param maxLength The new value for the <property>maxLength</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMaxLength(Integer maxLength) {
- this.maxLength = maxLength;
- return this;
- }
-
- /**
- * Bean property getter: <property>minLength</property>.
- *
- * @return The value of the <property>minLength</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMinLength() {
- return minLength;
- }
-
- /**
- * Bean property setter: <property>minLength</property>.
- *
- * @param minLength The new value for the <property>minLength</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMinLength(Integer minLength) {
- this.minLength = minLength;
- return this;
- }
-
- /**
- * Bean property getter: <property>pattern</property>.
- *
- * @return The value of the <property>pattern</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public String getPattern() {
- return pattern;
- }
-
- /**
- * Bean property setter: <property>pattern</property>.
- *
- * @param pattern The new value for the <property>pattern</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setPattern(String pattern) {
- this.pattern = pattern;
- return this;
- }
-
- /**
- * Bean property getter: <property>additionalItems</property>.
- *
- * @return The value of the <property>additionalItems</property> property on this bean, or <jk>null</jk> if it is not set.
- * Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
- */
- @BeanProperty(filter=BooleanOrSchemaArrayFilter.class)
- public Object getAdditionalItems() {
- if (additionalItemsBoolean != null)
- return additionalItemsBoolean;
- return additionalItemsSchemaArray;
- }
-
- /**
- * Bean property getter: <property>additionalItems</property>.
- * <p>
- * Convenience method for returning the <property>additionalItems</property> property when it is a {@link Boolean} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link SchemaArray}.
- */
- @BeanIgnore
- public Boolean getAdditionalItemsAsBoolean() {
- return additionalItemsBoolean;
- }
-
- /**
- * Bean property getter: <property>additionalItems</property>.
- * <p>
- * Convenience method for returning the <property>additionalItems</property> property when it is a {@link SchemaArray} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Boolean}.
- */
- @BeanIgnore
- public List<Schema> getAdditionalItemsAsSchemaArray() {
- return additionalItemsSchemaArray;
- }
-
- /**
- * Bean property setter: <property>additionalItems</property>.
- *
- * @param additionalItems The new value for the <property>additionalItems</property> property on this bean.
- * This object must be of type {@link Boolean} or {@link SchemaArray}.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If invalid object type passed in.
- */
- public Schema setAdditionalItems(Object additionalItems) {
- this.additionalItemsBoolean = null;
- this.additionalItemsSchemaArray = null;
- if (additionalItems != null) {
- if (additionalItems instanceof Boolean)
- this.additionalItemsBoolean = (Boolean)additionalItems;
- else if (additionalItems instanceof SchemaArray) {
- this.additionalItemsSchemaArray = (SchemaArray)additionalItems;
- setMasterOn(this.additionalItemsSchemaArray);
- } else
- throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in. Must be one of the following: Boolean, SchemaArray", additionalItems.getClass().getName());
- }
- return this;
- }
-
- /**
- * Bean property appender: <property>additionalItems</property>.
- *
- * @param additionalItems The list of items to append to the <property>additionalItems</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addAdditionalItems(Schema...additionalItems) {
- if (this.additionalItemsSchemaArray == null)
- this.additionalItemsSchemaArray = new SchemaArray();
- this.additionalItemsSchemaArray.addAll(additionalItems);
- setMasterOn(additionalItems);
- return this;
- }
-
- /**
- * Used during parsing to convert the <property>additionalItems</property> property to the correct class type.
- * <ul>
- * <li>If parsing a JSON-array, converts to a {@link SchemaArray}.
- * <li>If parsing a JSON-boolean, converts to a {@link Boolean}.
- * </ul>
- * Serialization method is a no-op.
- */
- public static class BooleanOrSchemaArrayFilter extends PojoFilter<Object,Object> {
-
- @Override /* PojoFilter */
- public Object filter(Object o) throws SerializeException {
- return o;
- }
-
- @Override /* PojoFilter */
- public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
- BeanContext bc = getBeanContext();
- ClassMeta<?> cm = (o instanceof Collection ? bc.getClassMeta(SchemaArray.class) : bc.getClassMeta(Boolean.class));
- return bc.convertToType(o, cm);
- }
- }
-
- /**
- * Bean property getter: <property>maxItems</property>.
- *
- * @return The value of the <property>maxItems</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMaxItems() {
- return maxItems;
- }
-
- /**
- * Bean property setter: <property>maxItems</property>.
- *
- * @param maxItems The new value for the <property>maxItems</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMaxItems(Integer maxItems) {
- this.maxItems = maxItems;
- return this;
- }
-
- /**
- * Bean property getter: <property>minItems</property>.
- *
- * @return The value of the <property>minItems</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMinItems() {
- return minItems;
- }
-
- /**
- * Bean property setter: <property>minItems</property>.
- *
- * @param minItems The new value for the <property>minItems</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMinItems(Integer minItems) {
- this.minItems = minItems;
- return this;
- }
-
- /**
- * Bean property getter: <property>uniqueItems</property>.
- *
- * @return The value of the <property>uniqueItems</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Boolean getUniqueItems() {
- return uniqueItems;
- }
-
- /**
- * Bean property setter: <property>uniqueItems</property>.
- *
- * @param uniqueItems The new value for the <property>uniqueItems</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setUniqueItems(Boolean uniqueItems) {
- this.uniqueItems = uniqueItems;
- return this;
- }
-
- /**
- * Bean property getter: <property>maxProperties</property>.
- *
- * @return The value of the <property>maxProperties</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMaxProperties() {
- return maxProperties;
- }
-
- /**
- * Bean property setter: <property>maxProperties</property>.
- *
- * @param maxProperties The new value for the <property>maxProperties</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMaxProperties(Integer maxProperties) {
- this.maxProperties = maxProperties;
- return this;
- }
-
- /**
- * Bean property getter: <property>minProperties</property>.
- *
- * @return The value of the <property>minProperties</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Integer getMinProperties() {
- return minProperties;
- }
-
- /**
- * Bean property setter: <property>minProperties</property>.
- *
- * @param minProperties The new value for the <property>minProperties</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setMinProperties(Integer minProperties) {
- this.minProperties = minProperties;
- return this;
- }
-
- /**
- * Bean property getter: <property>required</property>.
- *
- * @return The value of the <property>required</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public List<String> getRequired() {
- return required;
- }
-
- /**
- * Bean property setter: <property>required</property>.
- *
- * @param required The new value for the <property>required</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setRequired(List<String> required) {
- this.required = required;
- return this;
- }
-
- /**
- * Bean property appender: <property>required</property>.
- *
- * @param required The list of items to append to the <property>required</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addRequired(List<String> required) {
- if (this.required == null)
- this.required = new LinkedList<String>();
- for (String r : required)
- this.required.add(r);
- return this;
- }
-
- /**
- * Bean property appender: <property>required</property>.
- *
- * @param required The list of items to append to the <property>required</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addRequired(String...required) {
- if (this.required == null)
- this.required = new LinkedList<String>();
- for (String r : required)
- this.required.add(r);
- return this;
- }
-
- /**
- * Bean property appender: <property>required</property>.
- *
- * @param properties The list of items to append to the <property>required</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addRequired(SchemaProperty...properties) {
- if (this.required == null)
- this.required = new LinkedList<String>();
- for (SchemaProperty p : properties)
- this.required.add(p.getName());
- return this;
- }
-
- /**
- * Bean property getter: <property>additionalProperties</property>.
- *
- * @return The value of the <property>additionalProperties</property> property on this bean, or <jk>null</jk> if it is not set.
- * Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
- */
- @BeanProperty(filter=BooleanOrSchemaFilter.class)
- public Object getAdditionalProperties() {
- if (additionalPropertiesBoolean != null)
- return additionalItemsBoolean;
- return additionalPropertiesSchema;
- }
-
- /**
- * Bean property getter: <property>additionalProperties</property>.
- * <p>
- * Convenience method for returning the <property>additionalProperties</property> property when it is a {@link Boolean} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Schema}.
- */
- @BeanIgnore
- public Boolean getAdditionalPropertiesAsBoolean() {
- return additionalPropertiesBoolean;
- }
-
- /**
- * Bean property getter: <property>additionalProperties</property>.
- * <p>
- * Convenience method for returning the <property>additionalProperties</property> property when it is a {@link Schema} value.
- *
- * @return The currently set value, or <jk>null</jk> if the property is not set, or is set as a {@link Boolean}.
- */
- @BeanIgnore
- public Schema getAdditionalPropertiesAsSchema() {
- return additionalPropertiesSchema;
- }
-
- /**
- * Bean property setter: <property>additionalProperties</property>.
- *
- * @param additionalProperties The new value for the <property>additionalProperties</property> property on this bean.
- * This object must be of type {@link Boolean} or {@link Schema}.
- * @return This object (for method chaining).
- * @throws BeanRuntimeException If invalid object type passed in.
- */
- public Schema setAdditionalProperties(Object additionalProperties) {
- this.additionalPropertiesBoolean = null;
- this.additionalPropertiesSchema = null;
- if (additionalProperties != null) {
- if (additionalProperties instanceof Boolean)
- this.additionalPropertiesBoolean = (Boolean)additionalProperties;
- else if (additionalProperties instanceof Schema) {
- this.additionalPropertiesSchema = (Schema)additionalProperties;
- setMasterOn(this.additionalPropertiesSchema);
- } else
- throw new BeanRuntimeException(SchemaProperty.class, "Invalid attribute type ''{0}'' passed in. Must be one of the following: Boolean, Schema", additionalProperties.getClass().getName());
- }
- return this;
- }
-
- /**
- * Used during parsing to convert the <property>additionalProperties</property> property to the correct class type.
- * <ul>
- * <li>If parsing a JSON-object, converts to a {@link Schema}.
- * <li>If parsing a JSON-boolean, converts to a {@link Boolean}.
- * </ul>
- * Serialization method is a no-op.
- */
- public static class BooleanOrSchemaFilter extends PojoFilter<Object,Object> {
-
- @Override /* PojoFilter */
- public Object filter(Object o) throws SerializeException {
- return o;
- }
-
- @Override /* PojoFilter */
- public Object unfilter(Object o, ClassMeta<?> hint) throws ParseException {
- BeanContext bc = getBeanContext();
- ClassMeta<?> cm = (o instanceof Boolean ? bc.getClassMeta(Boolean.class) : bc.getClassMeta(Schema.class));
- return bc.convertToType(o, cm);
- }
- }
-
- /**
- * Bean property getter: <property>enum</property>.
- *
- * @return The value of the <property>enum</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public List<String> getEnum() {
- return _enum;
- }
-
- /**
- * Bean property setter: <property>enum</property>.
- *
- * @param _enum The new value for the <property>enum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setEnum(List<String> _enum) {
- this._enum = _enum;
- return this;
- }
-
- /**
- * Bean property appender: <property>enum</property>.
- *
- * @param _enum The list of items to append to the <property>enum</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addEnum(String..._enum) {
- if (this._enum == null)
- this._enum = new LinkedList<String>();
- for (String e : _enum)
- this._enum.add(e);
- return this;
- }
-
- /**
- * Bean property getter: <property>allOf</property>.
- *
- * @return The value of the <property>allOf</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public List<Schema> getAllOf() {
- return allOf;
- }
-
- /**
- * Bean property setter: <property>allOf</property>.
- *
- * @param allOf The new value for the <property>allOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setAllOf(List<Schema> allOf) {
- this.allOf = allOf;
- setMasterOn(allOf);
- return this;
- }
-
- /**
- * Bean property appender: <property>allOf</property>.
- *
- * @param allOf The list of items to append to the <property>allOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addAllOf(Schema...allOf) {
- if (this.allOf == null)
- this.allOf = new LinkedList<Schema>();
- setMasterOn(allOf);
- for (Schema s : allOf)
- this.allOf.add(s);
- return this;
- }
-
- /**
- * Bean property getter: <property>anyOf</property>.
- *
- * @return The value of the <property>anyOf</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public List<Schema> getAnyOf() {
- return anyOf;
- }
-
- /**
- * Bean property setter: <property>anyOf</property>.
- *
- * @param anyOf The new value of the <property>anyOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setAnyOf(List<Schema> anyOf) {
- this.anyOf = anyOf;
- setMasterOn(anyOf);
- return this;
- }
-
- /**
- * Bean property appender: <property>anyOf</property>.
- *
- * @param anyOf The list of items to append to the <property>anyOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addAnyOf(Schema...anyOf) {
- if (this.anyOf == null)
- this.anyOf = new LinkedList<Schema>();
- setMasterOn(anyOf);
- for (Schema s : anyOf)
- this.anyOf.add(s);
- return this;
- }
-
- /**
- * Bean property getter: <property>oneOf</property>.
- *
- * @return The value of the <property>oneOf</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public List<Schema> getOneOf() {
- return oneOf;
- }
-
- /**
- * Bean property setter: <property>oneOf</property>.
- *
- * @param oneOf The new value for the <property>oneOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setOneOf(List<Schema> oneOf) {
- this.oneOf = oneOf;
- setMasterOn(oneOf);
- return this;
- }
-
- /**
- * Bean property appender: <property>oneOf</property>.
- *
- * @param oneOf The list of items to append to the <property>oneOf</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema addOneOf(Schema...oneOf) {
- if (this.oneOf == null)
- this.oneOf = new LinkedList<Schema>();
- setMasterOn(oneOf);
- for (Schema s : oneOf)
- this.oneOf.add(s);
- return this;
- }
-
- /**
- * Bean property getter: <property>not</property>.
- *
- * @return The value of the <property>not</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- public Schema getNot() {
- return not;
- }
-
- /**
- * Bean property setter: <property>not</property>.
- *
- * @param not The new value for the <property>not</property> property on this bean.
- * @return This object (for method chaining).
- */
- public Schema setNot(Schema not) {
- this.not = not;
- setMasterOn(not);
- return this;
- }
-
- /**
- * Bean property getter: <property>$ref</property>.
- *
- * @return The value of the <property>$ref</property> property on this bean, or <jk>null</jk> if it is not set.
- */
- @BeanProperty(name="$ref")
- public URI getRef() {
- return ref;
- }
-
- /**
- * Bean property setter: <property>$ref</property>.
- *
- * @param ref The new value for the <property>$ref</property> property on this bean.
- * @return This object (for method chaining).
- */
- @BeanProperty(name="$ref")
- public Schema setRef(URI ref) {
- this.ref = ref;
- return this;
- }
-
- private void setMasterOn(Schema s) {
- if (s != null)
- s.setMaster(this);
- }
-
- private void setMasterOn(Schema[] ss) {
- if (ss != null)
- for (Schema s : ss)
- setMasterOn(s);
- }
-
- private void setMasterOn(Collection<Schema> ss) {
- if (ss != null)
- for (Schema s : ss)
- setMasterOn(s);
- }
-
- private void setMasterOn(SchemaArray ss) {
- if (ss != null)
- for (Schema s : ss)
- setMasterOn(s);
- }
-
- /**
- * Sets the master schema for this schema and all child schema objects.
- * <p>
- * All child elements in a schema should point to a single "master" schema in order to
- * locate registered SchemaMap objects for resolving external schemas.
- *
- * @param master The master schema to associate on this and all children. Can be <jk>null</jk>.
- */
- protected void setMaster(Schema master) {
- this.master = master;
- if (definitions != null)
- for (Schema s : definitions.values())
- s.setMaster(master);
- if (properties != null)
- for (Schema s : properties.values())
- s.setMaster(master);
- if (patternProperties != null)
- for (Schema s : patternProperties.values())
- s.setMaster(master);
- if (dependencies != null)
- for (Schema s : dependencies.values())
- s.setMaster(master);
- if (itemsSchema != null)
- itemsSchema.setMaster(master);
- if (itemsSchemaArray != null)
- for (Schema s : itemsSchemaArray)
- s.setMaster(master);
- if (additionalItemsSchemaArray != null)
- for (Schema s : additionalItemsSchemaArray)
- s.setMaster(master);
- if (additionalPropertiesSchema != null)
- additionalPropertiesSchema.setMaster(master);
- if (allOf != null)
- for (Schema s : allOf)
- s.setMaster(master);
- if (anyOf != null)
- for (Schema s : anyOf)
- s.setMaster(master);
- if (oneOf != null)
- for (Schema s : oneOf)
- s.setMaster(master);
- if (not != null)
- not.setMaster(master);
- }
-
-
- /**
- * Bean property setter: <property>$ref</property>.
- *
- * @param ref The new value for the <property>$ref</property> property on this bean.
- * The parameter must be a valid URI. It can be <jk>null</jk>.
- * @return This object (for method chaining).
- */
- public Schema setRef(String ref) {
- return setRef(ref == null ? null : URI.create(ref));
- }
-
- /**
- * If this schema is a reference to another schema (i.e. has its <property>$ref</property> property set),
- * this method will retrieve the referenced schema from the schema map registered with this schema.
- * If this schema is not a reference, or no schema map is registered with this schema, this method
- * is a no-op and simply returns this object.
- *
- * @return The referenced schema, or <jk>null</jk>.
- */
- public Schema resolve() {
- if (ref == null || master.schemaMap == null)
- return this;
- return master.schemaMap.get(ref);
- }
-
- /**
- * Associates a schema map with this schema for resolving other schemas identified
- * through <property>$ref</property> properties.
- *
- * @param schemaMap The schema map to associate with this schema. Can be <jk>null</jk>.
- * @return This object (for method chaining).
- */
- public Schema setSchemaMap(SchemaMap schemaMap) {
- this.schemaMap = schemaMap;
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.class
deleted file mode 100755
index 3ca3475..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.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/dto/jsonschema/SchemaArray.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java
deleted file mode 100755
index a789d1b..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaArray.java
+++ /dev/null
@@ -1,50 +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.dto.jsonschema;
-
-import java.util.*;
-
-/**
- * Represents a list of {@link Schema} objects.
- * <p>
- * Refer to {@link com.ibm.juno.core.dto.jsonschema} for usage information.
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public class SchemaArray extends LinkedList<Schema> {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Default constructor.
- */
- public SchemaArray() {}
-
- /**
- * Constructor with predefined types to add to this list.
- *
- * @param schemas The list of schemas in this array.
- */
- public SchemaArray(Schema...schemas) {
- addAll(schemas);
- }
-
- /**
- * Convenience method for adding one or more {@link Schema} objects to
- * this array.
- *
- * @param schemas The {@link Schema} objects to add to this array.
- * @return This object (for method chaining).
- */
- public SchemaArray addAll(Schema...schemas) {
- for (Schema s : schemas)
- add(s);
- return this;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/30947fd7/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.class
deleted file mode 100755
index 6af7a4e..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.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/dto/jsonschema/SchemaMap.java
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java
deleted file mode 100755
index 225cd2f..0000000
--- a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaMap.java
+++ /dev/null
@@ -1,119 +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.dto.jsonschema;
-
-import java.io.*;
-import java.net.*;
-import java.util.concurrent.*;
-
-import com.ibm.juno.core.json.*;
-
-/**
- * A container for retrieving JSON {@link Schema} objects by URI.
- * <p>
- * Subclasses must implement one of the following methods to load schemas from external sources:
- * <ul>
- * <li>{@link #getReader(URI)} - If schemas should be loaded from readers and automatically parsed.
- * <li>{@link #load(URI)} - If you want control over construction of {@link Schema} objects.
- * </ul>
- *
- * @author James Bognar (jbognar@us.ibm.com)
- */
-public abstract class SchemaMap extends ConcurrentHashMap<URI,Schema> {
-
- private static final long serialVersionUID = 1L;
-
- @Override /* Map */
- public Schema get(Object uri) {
- if (uri == null)
- return null;
- return get(URI.create(uri.toString()));
- }
-
- /**
- * Return the {@link Schema} object at the specified URI.
- * If this schema object has not been loaded yet, calls {@link #load(URI)}.
- *
- * @param uri The URI of the schema to retrieve.
- * @return The Schema, or <jk>null</jk> if schema was not located and could not be loaded.
- */
- public Schema get(URI uri) {
- Schema s = super.get(uri);
- if (s != null)
- return s;
- synchronized(this) {
- s = load(uri);
- if (s != null) {
- // Note: Can't use add(Schema...) since the ID property may not be set.
- s.setSchemaMap(this);
- put(uri, s);
- }
- return s;
- }
- }
-
- /**
- * Convenience method for prepopulating this map with the specified schemas.
- * <p>
- * The schemas passed in through this method MUST have their ID properties set.
- *
- * @param schemas The set of schemas to add to this map.
- * @return This object (for method chaining).
- * @throws RuntimeException If one or more schema objects did not have their ID property set.
- */
- public SchemaMap add(Schema...schemas) {
- for (Schema schema : schemas) {
- if (schema.getId() == null)
- throw new RuntimeException("Schema with no ID passed to SchemaMap.add(Schema...)");
- put(schema.getId(), schema);
- schema.setSchemaMap(this);
- }
- return this;
- }
-
- /**
- * Subclasses must implement either this method or {@link #getReader(URI)} to load the schema with the specified URI.
- * It's up to the implementer to decide where these come from.
- * <p>
- * The default implementation calls {@link #getReader(URI)} and parses the schema document.
- * If {@link #getReader(URI)} returns <jk>null</jk>, this method returns <jk>null</jk> indicating this is an unreachable document.
- *
- * @param uri The URI to load the schema from.
- * @return The parsed schema.
- */
- public Schema load(URI uri) {
- Reader r = getReader(uri);
- if (r == null)
- return null;
- try {
- return JsonParser.DEFAULT.parse(r, -1, Schema.class);
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- try {
- r.close();
- } catch (IOException e) {
- // Ignore
- }
- }
- }
-
- /**
- * Subclasses must implement either this method or {@link #load(URI)} to load the schema with the specified URI.
- * It's up to the implementer to decide where these come from.
- * <p>
- * The default implementation returns <jk>null</jk>.
- *
- * @param uri The URI to connect to and retrieve the contents.
- * @return The reader from reading the specified URI.
- */
- public Reader getReader(URI uri) {
- 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/dto/jsonschema/SchemaProperty.class
----------------------------------------------------------------------
diff --git a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.class b/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.class
deleted file mode 100755
index 6392fc1..0000000
Binary files a/com.ibm.team.juno.releng/bin/core/com/ibm/juno/core/dto/jsonschema/SchemaProperty.class and /dev/null differ