You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2016/06/03 22:47:57 UTC
vxquery git commit: Renamed a package with all lowercase values.
Repository: vxquery
Updated Branches:
refs/heads/master 1f623b166 -> 0cd9712d2
Renamed a package with all lowercase values.
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/0cd9712d
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/0cd9712d
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/0cd9712d
Branch: refs/heads/master
Commit: 0cd9712d281dab61006279d6cecd538398da9bb6
Parents: 1f623b1
Author: Preston Carman <pr...@apache.org>
Authored: Fri Jun 3 15:39:51 2016 -0700
Committer: Preston Carman <pr...@apache.org>
Committed: Fri Jun 3 15:39:51 2016 -0700
----------------------------------------------------------------------
.../accessors/jsonItem/ObjectPointable.java | 126 -------------------
.../accessors/jsonitem/ObjectPointable.java | 126 +++++++++++++++++++
.../builders/jsonItem/ObjectBuilder.java | 39 ------
.../builders/jsonitem/ObjectBuilder.java | 39 ++++++
4 files changed, 165 insertions(+), 165 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cd9712d/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonItem/ObjectPointable.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonItem/ObjectPointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonItem/ObjectPointable.java
deleted file mode 100644
index 9c714ec..0000000
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonItem/ObjectPointable.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.vxquery.datamodel.accessors.jsonitem;
-
-import java.io.IOException;
-
-import org.apache.hyracks.api.dataflow.value.ITypeTraits;
-import org.apache.hyracks.data.std.api.AbstractPointable;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.api.IPointableFactory;
-import org.apache.hyracks.data.std.primitive.IntegerPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
-import org.apache.vxquery.datamodel.values.ValueTag;
-import org.apache.vxquery.runtime.functions.util.FunctionHelper;
-
-/**
- * The datamodel of the JSON object is represented in this class:
- * Byte 1: Value tag of object (109)
- * Byte 2 to 5: number of key-value pairs in the object
- * Next few bytes: Offsets for each key-value pair in the object in the order appearing in the json data
- * Next bytes: The keys in the object each followed by the value of the key. Each key is a StringPointable and the value
- * of the key will be the respective pointable starting with its valuetag.
- */
-public class ObjectPointable extends AbstractPointable {
- public static final IPointableFactory FACTORY = new IPointableFactory() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public ITypeTraits getTypeTraits() {
- return VoidPointable.TYPE_TRAITS;
- }
-
- @Override
- public IPointable createPointable() {
- return new ObjectPointable();
- }
- };
- private static final int ENTRY_COUNT_SIZE = IntegerPointable.TYPE_TRAITS.getFixedLength();
- private static final int SLOT_SIZE = IntegerPointable.TYPE_TRAITS.getFixedLength();
- private final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
- private final SequenceBuilder sb = new SequenceBuilder();
- private final UTF8StringPointable key = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
-
- private static int getSlotValue(byte[] bytes, int start, int idx) {
- return IntegerPointable.getInteger(bytes, getSlotArrayOffset(start) + idx * SLOT_SIZE);
- }
-
- private static int getEntryCount(byte[] bytes, int start) {
- return IntegerPointable.getInteger(bytes, start);
- }
-
- private static int getKeyLength(byte[] b, int s) {
- return UTF8StringPointable.getUTFLength(b, s) + 2;
- }
-
- private static int getSlotArrayOffset(int start) {
- return start + ENTRY_COUNT_SIZE;
- }
-
- private static int getDataAreaOffset(byte[] bytes, int start) {
- return getSlotArrayOffset(start) + getEntryCount(bytes, start) * SLOT_SIZE;
- }
-
- public void getKeys(IPointable result) throws IOException {
- abvs.reset();
- sb.reset(abvs);
- int dataAreaOffset = getDataAreaOffset(bytes, start);
- int entryCount = getEntryCount();
- int s;
- for (int i = 0; i < entryCount; i++) {
- s = dataAreaOffset + getRelativeEntryStartOffset(i);
- key.set(bytes, s, getKeyLength(bytes, s));
- sb.addItem(ValueTag.XS_STRING_TAG, key);
- }
- sb.finish();
- result.set(abvs);
- }
-
- public boolean getValue(UTF8StringPointable key, IPointable result) {
- int dataAreaOffset = getDataAreaOffset(bytes, start);
- int entryCount = getEntryCount();
- int start;
- int length;
- int i;
- for (i = 0; i < entryCount; i++) {
- start = dataAreaOffset + getRelativeEntryStartOffset(i);
- length = getKeyLength(bytes, start);
- if (FunctionHelper.arraysEqual(bytes, start, length, key.getByteArray(), key.getStartOffset(),
- key.getLength())) {
- result.set(bytes, start + length, getEntryLength(i) - length);
- return true;
- }
- }
- return false;
- }
-
- private int getRelativeEntryStartOffset(int idx) {
- return idx == 0 ? 0 : getSlotValue(bytes, start, idx - 1);
- }
-
- private int getEntryLength(int idx) {
- return getSlotValue(bytes, start, idx) - getRelativeEntryStartOffset(idx);
- }
-
- public int getEntryCount() {
- return getEntryCount(bytes, start);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cd9712d/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
new file mode 100644
index 0000000..9c714ec
--- /dev/null
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/accessors/jsonitem/ObjectPointable.java
@@ -0,0 +1,126 @@
+/*
+ * 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.vxquery.datamodel.accessors.jsonitem;
+
+import java.io.IOException;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.data.std.api.AbstractPointable;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.data.std.api.IPointableFactory;
+import org.apache.hyracks.data.std.primitive.IntegerPointable;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.hyracks.data.std.primitive.VoidPointable;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
+import org.apache.vxquery.datamodel.values.ValueTag;
+import org.apache.vxquery.runtime.functions.util.FunctionHelper;
+
+/**
+ * The datamodel of the JSON object is represented in this class:
+ * Byte 1: Value tag of object (109)
+ * Byte 2 to 5: number of key-value pairs in the object
+ * Next few bytes: Offsets for each key-value pair in the object in the order appearing in the json data
+ * Next bytes: The keys in the object each followed by the value of the key. Each key is a StringPointable and the value
+ * of the key will be the respective pointable starting with its valuetag.
+ */
+public class ObjectPointable extends AbstractPointable {
+ public static final IPointableFactory FACTORY = new IPointableFactory() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public ITypeTraits getTypeTraits() {
+ return VoidPointable.TYPE_TRAITS;
+ }
+
+ @Override
+ public IPointable createPointable() {
+ return new ObjectPointable();
+ }
+ };
+ private static final int ENTRY_COUNT_SIZE = IntegerPointable.TYPE_TRAITS.getFixedLength();
+ private static final int SLOT_SIZE = IntegerPointable.TYPE_TRAITS.getFixedLength();
+ private final ArrayBackedValueStorage abvs = new ArrayBackedValueStorage();
+ private final SequenceBuilder sb = new SequenceBuilder();
+ private final UTF8StringPointable key = (UTF8StringPointable) UTF8StringPointable.FACTORY.createPointable();
+
+ private static int getSlotValue(byte[] bytes, int start, int idx) {
+ return IntegerPointable.getInteger(bytes, getSlotArrayOffset(start) + idx * SLOT_SIZE);
+ }
+
+ private static int getEntryCount(byte[] bytes, int start) {
+ return IntegerPointable.getInteger(bytes, start);
+ }
+
+ private static int getKeyLength(byte[] b, int s) {
+ return UTF8StringPointable.getUTFLength(b, s) + 2;
+ }
+
+ private static int getSlotArrayOffset(int start) {
+ return start + ENTRY_COUNT_SIZE;
+ }
+
+ private static int getDataAreaOffset(byte[] bytes, int start) {
+ return getSlotArrayOffset(start) + getEntryCount(bytes, start) * SLOT_SIZE;
+ }
+
+ public void getKeys(IPointable result) throws IOException {
+ abvs.reset();
+ sb.reset(abvs);
+ int dataAreaOffset = getDataAreaOffset(bytes, start);
+ int entryCount = getEntryCount();
+ int s;
+ for (int i = 0; i < entryCount; i++) {
+ s = dataAreaOffset + getRelativeEntryStartOffset(i);
+ key.set(bytes, s, getKeyLength(bytes, s));
+ sb.addItem(ValueTag.XS_STRING_TAG, key);
+ }
+ sb.finish();
+ result.set(abvs);
+ }
+
+ public boolean getValue(UTF8StringPointable key, IPointable result) {
+ int dataAreaOffset = getDataAreaOffset(bytes, start);
+ int entryCount = getEntryCount();
+ int start;
+ int length;
+ int i;
+ for (i = 0; i < entryCount; i++) {
+ start = dataAreaOffset + getRelativeEntryStartOffset(i);
+ length = getKeyLength(bytes, start);
+ if (FunctionHelper.arraysEqual(bytes, start, length, key.getByteArray(), key.getStartOffset(),
+ key.getLength())) {
+ result.set(bytes, start + length, getEntryLength(i) - length);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private int getRelativeEntryStartOffset(int idx) {
+ return idx == 0 ? 0 : getSlotValue(bytes, start, idx - 1);
+ }
+
+ private int getEntryLength(int idx) {
+ return getSlotValue(bytes, start, idx) - getRelativeEntryStartOffset(idx);
+ }
+
+ public int getEntryCount() {
+ return getEntryCount(bytes, start);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cd9712d/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonItem/ObjectBuilder.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonItem/ObjectBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonItem/ObjectBuilder.java
deleted file mode 100644
index 000110a..0000000
--- a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonItem/ObjectBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.vxquery.datamodel.builders.jsonitem;
-
-import java.io.IOException;
-
-import org.apache.hyracks.data.std.api.IValueReference;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.vxquery.datamodel.builders.base.IBuilder;
-import org.apache.vxquery.datamodel.values.ValueTag;
-
-public class ObjectBuilder extends AbstractJsonBuilder implements IBuilder {
-
- @Override
- public int getValueTag() {
- return ValueTag.OBJECT_TAG;
- }
-
- public void addItem(UTF8StringPointable key, IValueReference value) throws IOException {
- dataArea.getDataOutput().write(key.getByteArray(), key.getStartOffset(), key.getLength());
- dataArea.getDataOutput().write(value.getByteArray(), value.getStartOffset(), value.getLength());
- slots.append(dataArea.getLength());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cd9712d/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonitem/ObjectBuilder.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonitem/ObjectBuilder.java b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonitem/ObjectBuilder.java
new file mode 100644
index 0000000..000110a
--- /dev/null
+++ b/vxquery-core/src/main/java/org/apache/vxquery/datamodel/builders/jsonitem/ObjectBuilder.java
@@ -0,0 +1,39 @@
+/*
+ * 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.vxquery.datamodel.builders.jsonitem;
+
+import java.io.IOException;
+
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
+import org.apache.vxquery.datamodel.builders.base.IBuilder;
+import org.apache.vxquery.datamodel.values.ValueTag;
+
+public class ObjectBuilder extends AbstractJsonBuilder implements IBuilder {
+
+ @Override
+ public int getValueTag() {
+ return ValueTag.OBJECT_TAG;
+ }
+
+ public void addItem(UTF8StringPointable key, IValueReference value) throws IOException {
+ dataArea.getDataOutput().write(key.getByteArray(), key.getStartOffset(), key.getLength());
+ dataArea.getDataOutput().write(value.getByteArray(), value.getStartOffset(), value.getLength());
+ slots.append(dataArea.getLength());
+ }
+
+}