From commits-return-19699-archive-asf-public=cust-asf.ponee.io@jena.apache.org Fri May 4 11:03:09 2018
Return-Path:
X-Original-To: archive-asf-public@cust-asf.ponee.io
Delivered-To: archive-asf-public@cust-asf.ponee.io
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by mx-eu-01.ponee.io (Postfix) with SMTP id 7CAF31807AC
for ; Fri, 4 May 2018 11:03:06 +0200 (CEST)
Received: (qmail 91015 invoked by uid 500); 4 May 2018 09:03:05 -0000
Mailing-List: contact commits-help@jena.apache.org; run by ezmlm
Precedence: bulk
List-Help:
List-Unsubscribe:
List-Post:
List-Id:
Reply-To: dev@jena.apache.org
Delivered-To: mailing list commits@jena.apache.org
Received: (qmail 90431 invoked by uid 99); 4 May 2018 09:03:04 -0000
Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23)
by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 04 May 2018 09:03:04 +0000
Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33)
id 22472F6966; Fri, 4 May 2018 09:03:03 +0000 (UTC)
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: andy@apache.org
To: commits@jena.apache.org
Date: Fri, 04 May 2018 09:03:12 -0000
Message-Id:
In-Reply-To: <6738e339cac74a1e96fdf52ec63c5e1e@git.apache.org>
References: <6738e339cac74a1e96fdf52ec63c5e1e@git.apache.org>
X-Mailer: ASF-Git Admin Mailer
Subject: [11/24] jena git commit: JENA-1537: Remove dependency on Xerces.
Import needed code
http://git-wip-us.apache.org/repos/asf/jena/blob/c9a7e646/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/XSDeclarationPool.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/XSDeclarationPool.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/XSDeclarationPool.java
new file mode 100644
index 0000000..d033a19
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/XSDeclarationPool.java
@@ -0,0 +1,315 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.ext.xerces.impl.xs;
+
+import org.apache.jena.ext.xerces.impl.dv.xs.SchemaDVFactoryImpl;
+import org.apache.jena.ext.xerces.impl.dv.xs.XSSimpleTypeDecl;
+
+/**
+ * This class is pool that enables caching of XML Schema declaration objects.
+ * Before a compiled grammar object is garbage collected,
+ * the implementation will add all XML Schema component
+ * declarations to the pool.
+ * Note: The cashing mechanism is not implemented yet.
+ *
+ * @xerces.internal
+ *
+ * @author Elena Litani, IBM
+ * @version $Id: XSDeclarationPool.java 805582 2009-08-18 21:13:20Z sandygao $
+ */
+public final class XSDeclarationPool {
+ /** Chunk shift (8). */
+ private static final int CHUNK_SHIFT = 8; // 2^8 = 256
+
+ /** Chunk size (1 << CHUNK_SHIFT). */
+ private static final int CHUNK_SIZE = 1 << CHUNK_SHIFT;
+
+ /** Chunk mask (CHUNK_SIZE - 1). */
+ private static final int CHUNK_MASK = CHUNK_SIZE - 1;
+
+ /** Initial chunk count (). */
+ private static final int INITIAL_CHUNK_COUNT = (1 << (10 - CHUNK_SHIFT)); // 2^10 = 1k
+//
+// /** Element declaration pool*/
+// private XSElementDecl fElementDecl[][] = new XSElementDecl[INITIAL_CHUNK_COUNT][];
+// private int fElementDeclIndex = 0;
+//
+// /** Particle declaration pool */
+// private XSParticleDecl fParticleDecl[][] = new XSParticleDecl[INITIAL_CHUNK_COUNT][];
+// private int fParticleDeclIndex = 0;
+//
+// /** Particle declaration pool */
+// private XSModelGroupImpl fModelGroup[][] = new XSModelGroupImpl[INITIAL_CHUNK_COUNT][];
+// private int fModelGroupIndex = 0;
+//
+// /** Attribute declaration pool */
+// private XSAttributeDecl fAttrDecl[][] = new XSAttributeDecl[INITIAL_CHUNK_COUNT][];
+// private int fAttrDeclIndex = 0;
+//
+// /** ComplexType declaration pool */
+// private XSComplexTypeDecl fCTDecl[][] = new XSComplexTypeDecl[INITIAL_CHUNK_COUNT][];
+// private int fCTDeclIndex = 0;
+//
+ /** SimpleType declaration pool */
+ private XSSimpleTypeDecl fSTDecl[][] = new XSSimpleTypeDecl[INITIAL_CHUNK_COUNT][];
+ private int fSTDeclIndex = 0;
+//
+// /** AttributeUse declaration pool */
+// private XSAttributeUseImpl fAttributeUse[][] = new XSAttributeUseImpl[INITIAL_CHUNK_COUNT][];
+// private int fAttributeUseIndex = 0;
+//
+ private SchemaDVFactoryImpl dvFactory;
+ public void setDVFactory(SchemaDVFactoryImpl dvFactory) {
+ this.dvFactory = dvFactory;
+ }
+//
+// public final XSElementDecl getElementDecl(){
+// int chunk = fElementDeclIndex >> CHUNK_SHIFT;
+// int index = fElementDeclIndex & CHUNK_MASK;
+// ensureElementDeclCapacity(chunk);
+// if (fElementDecl[chunk][index] == null) {
+// fElementDecl[chunk][index] = new XSElementDecl();
+// } else {
+// fElementDecl[chunk][index].reset();
+// }
+// fElementDeclIndex++;
+// return fElementDecl[chunk][index];
+// }
+//
+// public final XSAttributeDecl getAttributeDecl(){
+// int chunk = fAttrDeclIndex >> CHUNK_SHIFT;
+// int index = fAttrDeclIndex & CHUNK_MASK;
+// ensureAttrDeclCapacity(chunk);
+// if (fAttrDecl[chunk][index] == null) {
+// fAttrDecl[chunk][index] = new XSAttributeDecl();
+// } else {
+// fAttrDecl[chunk][index].reset();
+// }
+// fAttrDeclIndex++;
+// return fAttrDecl[chunk][index];
+//
+// }
+//
+// public final XSAttributeUseImpl getAttributeUse(){
+// int chunk = fAttributeUseIndex >> CHUNK_SHIFT;
+// int index = fAttributeUseIndex & CHUNK_MASK;
+// ensureAttributeUseCapacity(chunk);
+// if (fAttributeUse[chunk][index] == null) {
+// fAttributeUse[chunk][index] = new XSAttributeUseImpl();
+// } else {
+// fAttributeUse[chunk][index].reset();
+// }
+// fAttributeUseIndex++;
+// return fAttributeUse[chunk][index];
+//
+// }
+//
+// public final XSComplexTypeDecl getComplexTypeDecl(){
+// int chunk = fCTDeclIndex >> CHUNK_SHIFT;
+// int index = fCTDeclIndex & CHUNK_MASK;
+// ensureCTDeclCapacity(chunk);
+// if (fCTDecl[chunk][index] == null) {
+//
+// fCTDecl[chunk][index] = new XSComplexTypeDecl();
+// } else {
+// fCTDecl[chunk][index].reset();
+// }
+// fCTDeclIndex++;
+// return fCTDecl[chunk][index];
+// }
+//
+ public final XSSimpleTypeDecl getSimpleTypeDecl(){
+ int chunk = fSTDeclIndex >> CHUNK_SHIFT;
+ int index = fSTDeclIndex & CHUNK_MASK;
+ ensureSTDeclCapacity(chunk);
+ if (fSTDecl[chunk][index] == null) {
+ fSTDecl[chunk][index] = dvFactory.newXSSimpleTypeDecl();
+ } else {
+ fSTDecl[chunk][index].reset();
+ }
+ fSTDeclIndex++;
+ return fSTDecl[chunk][index];
+
+ }
+//
+// public final XSParticleDecl getParticleDecl(){
+// int chunk = fParticleDeclIndex >> CHUNK_SHIFT;
+// int index = fParticleDeclIndex & CHUNK_MASK;
+// ensureParticleDeclCapacity(chunk);
+// if (fParticleDecl[chunk][index] == null) {
+// fParticleDecl[chunk][index] = new XSParticleDecl();
+// } else {
+// fParticleDecl[chunk][index].reset();
+// }
+// fParticleDeclIndex++;
+// return fParticleDecl[chunk][index];
+// }
+//
+// public final XSModelGroupImpl getModelGroup(){
+// int chunk = fModelGroupIndex >> CHUNK_SHIFT;
+// int index = fModelGroupIndex & CHUNK_MASK;
+// ensureModelGroupCapacity(chunk);
+// if (fModelGroup[chunk][index] == null) {
+// fModelGroup[chunk][index] = new XSModelGroupImpl();
+// } else {
+// fModelGroup[chunk][index].reset();
+// }
+// fModelGroupIndex++;
+// return fModelGroup[chunk][index];
+// }
+//
+// // REVISIT: do we need decl pool for group declarations, attribute group,
+// // notations?
+// // it seems like each schema would use a small number of those
+// // components, so it probably is not worth keeping those components
+// // in the pool.
+//
+// private boolean ensureElementDeclCapacity(int chunk) {
+// if (chunk >= fElementDecl.length) {
+// fElementDecl = resize(fElementDecl, fElementDecl.length * 2);
+// } else if (fElementDecl[chunk] != null) {
+// return false;
+// }
+//
+// fElementDecl[chunk] = new XSElementDecl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private static XSElementDecl[][] resize(XSElementDecl array[][], int newsize) {
+// XSElementDecl newarray[][] = new XSElementDecl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+// private boolean ensureParticleDeclCapacity(int chunk) {
+// if (chunk >= fParticleDecl.length) {
+// fParticleDecl = resize(fParticleDecl, fParticleDecl.length * 2);
+// } else if (fParticleDecl[chunk] != null) {
+// return false;
+// }
+//
+// fParticleDecl[chunk] = new XSParticleDecl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private boolean ensureModelGroupCapacity(int chunk) {
+// if (chunk >= fModelGroup.length) {
+// fModelGroup = resize(fModelGroup, fModelGroup.length * 2);
+// } else if (fModelGroup[chunk] != null) {
+// return false;
+// }
+//
+// fModelGroup[chunk] = new XSModelGroupImpl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private static XSParticleDecl[][] resize(XSParticleDecl array[][], int newsize) {
+// XSParticleDecl newarray[][] = new XSParticleDecl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+// private static XSModelGroupImpl[][] resize(XSModelGroupImpl array[][], int newsize) {
+// XSModelGroupImpl newarray[][] = new XSModelGroupImpl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+// private boolean ensureAttrDeclCapacity(int chunk) {
+// if (chunk >= fAttrDecl.length) {
+// fAttrDecl = resize(fAttrDecl, fAttrDecl.length * 2);
+// } else if (fAttrDecl[chunk] != null) {
+// return false;
+// }
+//
+// fAttrDecl[chunk] = new XSAttributeDecl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private static XSAttributeDecl[][] resize(XSAttributeDecl array[][], int newsize) {
+// XSAttributeDecl newarray[][] = new XSAttributeDecl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+// private boolean ensureAttributeUseCapacity(int chunk) {
+// if (chunk >= fAttributeUse.length) {
+// fAttributeUse = resize(fAttributeUse, fAttributeUse.length * 2);
+// } else if (fAttributeUse[chunk] != null) {
+// return false;
+// }
+//
+// fAttributeUse[chunk] = new XSAttributeUseImpl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private static XSAttributeUseImpl[][] resize(XSAttributeUseImpl array[][], int newsize) {
+// XSAttributeUseImpl newarray[][] = new XSAttributeUseImpl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+ private boolean ensureSTDeclCapacity(int chunk) {
+ if (chunk >= fSTDecl.length) {
+ fSTDecl = resize(fSTDecl, fSTDecl.length * 2);
+ } else if (fSTDecl[chunk] != null) {
+ return false;
+ }
+
+ fSTDecl[chunk] = new XSSimpleTypeDecl[CHUNK_SIZE];
+ return true;
+ }
+
+ private static XSSimpleTypeDecl[][] resize(XSSimpleTypeDecl array[][], int newsize) {
+ XSSimpleTypeDecl newarray[][] = new XSSimpleTypeDecl[newsize][];
+ System.arraycopy(array, 0, newarray, 0, array.length);
+ return newarray;
+ }
+//
+// private boolean ensureCTDeclCapacity(int chunk) {
+//
+// if (chunk >= fCTDecl.length) {
+// fCTDecl = resize(fCTDecl, fCTDecl.length * 2);
+// } else if (fCTDecl[chunk] != null){
+// return false;
+// }
+//
+// fCTDecl[chunk] = new XSComplexTypeDecl[CHUNK_SIZE];
+// return true;
+// }
+//
+// private static XSComplexTypeDecl[][] resize(XSComplexTypeDecl array[][], int newsize) {
+// XSComplexTypeDecl newarray[][] = new XSComplexTypeDecl[newsize][];
+// System.arraycopy(array, 0, newarray, 0, array.length);
+// return newarray;
+// }
+//
+//
+//
+ public void reset(){
+// fElementDeclIndex = 0;
+// fParticleDeclIndex = 0;
+// fModelGroupIndex = 0;
+ fSTDeclIndex = 0;
+// fCTDeclIndex = 0;
+// fAttrDeclIndex = 0;
+// fAttributeUseIndex = 0;
+ }
+//
+//
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/c9a7e646/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/util/ObjectListImpl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/util/ObjectListImpl.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/util/ObjectListImpl.java
new file mode 100644
index 0000000..062f397
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/xs/util/ObjectListImpl.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.ext.xerces.impl.xs.util;
+
+import java.lang.reflect.Array;
+import java.util.AbstractList;
+
+import org.apache.jena.ext.xerces.xs.datatypes.ObjectList;
+
+/**
+ * Contains a list of Objects.
+ *
+ * @xerces.internal
+ *
+ * @version $Id: ObjectListImpl.java 789785 2009-06-30 15:10:26Z knoaman $
+ */
+@SuppressWarnings("all")
+public final class ObjectListImpl extends AbstractList
+ *
+ * @param cal java.util.GregorianCalendar used to create XMLGregorianCalendar
+ *
+ * @return XMLGregorianCalendar created from java.util.GregorianCalendar
+ *
+ * @throws NullPointerException If cal is null.
+ */
+ public XMLGregorianCalendar newXMLGregorianCalendar(final GregorianCalendar cal) {
+
+ return new XMLGregorianCalendarImpl(cal);
+ }
+
+ /**
+ *
Constructor of value spaces that a
+ * java.util.GregorianCalendar instance would need to convert to an
+ * XMLGregorianCalendar instance.
+ *
+ *
XMLGregorianCalendar eon and
+ * fractionalSecond are set to null
+ *
+ *
A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field isnot set.
+ *
+ * @param year of XMLGregorianCalendar to be created.
+ * @param month of XMLGregorianCalendar to be created.
+ * @param day of XMLGregorianCalendar to be created.
+ * @param hour of XMLGregorianCalendar to be created.
+ * @param minute of XMLGregorianCalendar to be created.
+ * @param second of XMLGregorianCalendar to be created.
+ * @param millisecond of XMLGregorianCalendar to be created.
+ * @param timezone of XMLGregorianCalendar to be created.
+ *
+ * @return XMLGregorianCalendar created from specified values.
+ *
+ * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
+ * as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
+ * or if the composite values constitute an invalid XMLGregorianCalendar instance
+ * as determined by {@link XMLGregorianCalendar#isValid()}.
+ */
+ public XMLGregorianCalendar newXMLGregorianCalendar(
+ final int year,
+ final int month,
+ final int day,
+ final int hour,
+ final int minute,
+ final int second,
+ final int millisecond,
+ final int timezone) {
+ return XMLGregorianCalendarImpl.createDateTime(
+ year,
+ month,
+ day,
+ hour,
+ minute,
+ second,
+ millisecond,
+ timezone);
+ }
+
+ /**
+ *
Constructor allowing for complete value spaces allowed by
+ * W3C XML Schema 1.0 recommendation for xsd:dateTime and related
+ * builtin datatypes. Note that year parameter supports
+ * arbitrarily large numbers and fractionalSecond has infinite
+ * precision.
+ *
+ * @param year of XMLGregorianCalendar to be created.
+ * @param month of XMLGregorianCalendar to be created.
+ * @param day of XMLGregorianCalendar to be created.
+ * @param hour of XMLGregorianCalendar to be created.
+ * @param minute of XMLGregorianCalendar to be created.
+ * @param second of XMLGregorianCalendar to be created.
+ * @param fractionalSecond of XMLGregorianCalendar to be created.
+ * @param timezone of XMLGregorianCalendar to be created.
+ *
+ * @return XMLGregorianCalendar created from specified values.
+ *
+ * @throws IllegalArgumentException If any individual parameter's value is outside the maximum value constraint for the field
+ * as determined by the Date/Time Data Mapping table in {@link XMLGregorianCalendar}
+ * or if the composite values constitute an invalid XMLGregorianCalendar instance
+ * as determined by {@link XMLGregorianCalendar#isValid()}.
+ * @throws NullPointerException If any parameters are null.
+ *
+ */
+ public XMLGregorianCalendar newXMLGregorianCalendar(
+ final BigInteger year,
+ final int month,
+ final int day,
+ final int hour,
+ final int minute,
+ final int second,
+ final BigDecimal fractionalSecond,
+ final int timezone) {
+
+ return new XMLGregorianCalendarImpl(
+ year,
+ month,
+ day,
+ hour,
+ minute,
+ second,
+ fractionalSecond,
+ timezone
+ );
+ }
+}