You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by ti...@apache.org on 2016/05/26 19:19:13 UTC
[3/8] incubator-asterixdb git commit: ASTERIXDB-1220: print nested
values using visitors
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AFloatPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AFloatPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AFloatPrinterFactory.java
index c5e93fb..987dbd8 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AFloatPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AFloatPrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AFloatSerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,11 @@ public class AFloatPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AFloatPrinterFactory INSTANCE = new AFloatPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> ps
+ .print(AFloatSerializerDeserializer.getFloat(b, s + 1));
+
@Override
public IPrinter createPrinter() {
- return AFloatPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16Printer.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16Printer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16Printer.java
deleted file mode 100644
index a791cf0..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16Printer.java
+++ /dev/null
@@ -1,42 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt16SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AInt16Printer implements IPrinter {
- public static final AInt16Printer INSTANCE = new AInt16Printer();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- short i = AInt16SerializerDeserializer.getShort(b, s + 1);
-
- ps.print("{ \"int16\": ");
- ps.print(i);
- ps.print(" }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16PrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16PrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16PrinterFactory.java
index 903b59a..17a9e60 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16PrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt16PrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AInt16SerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,14 @@ public class AInt16PrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AInt16PrinterFactory INSTANCE = new AInt16PrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"int16\": ");
+ ps.print(AInt16SerializerDeserializer.getShort(b, s + 1));
+ ps.print(" }");
+ };
+
@Override
public IPrinter createPrinter() {
- return AInt16Printer.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32Printer.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32Printer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32Printer.java
deleted file mode 100644
index 437208b..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32Printer.java
+++ /dev/null
@@ -1,43 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt32SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AInt32Printer implements IPrinter {
-
- public static final AInt32Printer INSTANCE = new AInt32Printer();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- int d = AInt32SerializerDeserializer.getInt(b, s + 1);
-
- ps.print("{ \"int32\": ");
- ps.print(d);
- ps.print(" }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32PrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32PrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32PrinterFactory.java
index 383552e..cc7d861 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32PrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt32PrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AInt32SerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,14 @@ public class AInt32PrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AInt32PrinterFactory INSTANCE = new AInt32PrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"int32\": ");
+ ps.print(AInt32SerializerDeserializer.getInt(b, s + 1));
+ ps.print(" }");
+ };
+
@Override
public IPrinter createPrinter() {
- return AInt32Printer.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64Printer.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64Printer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64Printer.java
deleted file mode 100644
index f77ab29..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64Printer.java
+++ /dev/null
@@ -1,41 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AInt64Printer implements IPrinter {
- public static final AInt64Printer INSTANCE = new AInt64Printer();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- long d = AInt64SerializerDeserializer.getLong(b, s + 1);
- ps.print("{ \"int64\": ");
- ps.print(d);
- ps.print(" }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64PrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64PrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64PrinterFactory.java
index 4ebb974..81347a5 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64PrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt64PrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AInt64SerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,14 @@ public class AInt64PrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AInt64PrinterFactory INSTANCE = new AInt64PrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"int64\": ");
+ ps.print(AInt64SerializerDeserializer.getLong(b, s + 1));
+ ps.print(" }");
+ };
+
@Override
public IPrinter createPrinter() {
- return AInt64Printer.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8Printer.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8Printer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8Printer.java
deleted file mode 100644
index f4fa7d8..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8Printer.java
+++ /dev/null
@@ -1,43 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt8SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AInt8Printer implements IPrinter {
-
- public static final AInt8Printer INSTANCE = new AInt8Printer();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- byte o = AInt8SerializerDeserializer.getByte(b, s + 1);
-
- ps.print("{ \"int8\": ");
- ps.print(o);
- ps.print(" }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8PrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8PrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8PrinterFactory.java
index a5d409a..5b3368f 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8PrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AInt8PrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AInt8SerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,14 @@ public class AInt8PrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AInt8PrinterFactory INSTANCE = new AInt8PrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"int8\": ");
+ ps.print(AInt8SerializerDeserializer.getByte(b, s + 1));
+ ps.print(" }");
+ };
+
@Override
public IPrinter createPrinter() {
- return AInt8Printer.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinter.java
deleted file mode 100644
index 596cac9..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinter.java
+++ /dev/null
@@ -1,78 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.printers.adm.ADatePrinter;
-import org.apache.asterix.dataflow.data.nontagged.printers.adm.ADateTimePrinter;
-import org.apache.asterix.dataflow.data.nontagged.printers.adm.ATimePrinter;
-import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer;
-import org.apache.asterix.om.types.ATypeTag;
-import org.apache.asterix.om.types.EnumDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AIntervalPrinter implements IPrinter {
-
- public static final AIntervalPrinter INSTANCE = new AIntervalPrinter();
-
- /* (non-Javadoc)
- * @see org.apache.hyracks.algebricks.data.IPrinter#init()
- */
- @Override
- public void init() {
- }
-
- /* (non-Javadoc)
- * @see org.apache.hyracks.algebricks.data.IPrinter#print(byte[], int, int, java.io.PrintStream)
- */
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"interval\": { \"start\": ");
-
- byte typetag = AIntervalSerializerDeserializer.getIntervalTimeType(b, s + 1);
- int startOffset = AIntervalSerializerDeserializer.getIntervalStartOffset(b, s + 1) - 1;
- int startSize = AIntervalSerializerDeserializer.getStartSize(b, s + 1);
- int endOffset = AIntervalSerializerDeserializer.getIntervalEndOffset(b, s + 1) - 1;
- int endSize = AIntervalSerializerDeserializer.getEndSize(b, s + 1);
-
- IPrinter timeInstancePrinter;
- ATypeTag intervalType = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typetag);
- switch (intervalType) {
- case DATE:
- timeInstancePrinter = ADatePrinter.INSTANCE;
- break;
- case TIME:
- timeInstancePrinter = ATimePrinter.INSTANCE;
- break;
- case DATETIME:
- timeInstancePrinter = ADateTimePrinter.INSTANCE;
- break;
- default:
- throw new HyracksDataException("Unsupported internal time types in interval: " + typetag);
- }
-
- timeInstancePrinter.print(b, startOffset, startSize, ps);
- ps.print(", \"end\": ");
- timeInstancePrinter.print(b, endOffset, endSize, ps);
-
- ps.print("}}");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinterFactory.java
index 7dc9326..9c1a4ad 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AIntervalPrinterFactory.java
@@ -18,17 +18,48 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.AIntervalSerializerDeserializer;
+import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AIntervalPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AIntervalPrinterFactory INSTANCE = new AIntervalPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"interval\": { \"start\": ");
+ byte typetag = AIntervalSerializerDeserializer.getIntervalTimeType(b, s + 1);
+ int startOffset = AIntervalSerializerDeserializer.getIntervalStartOffset(b, s + 1) - 1;
+ int startSize = AIntervalSerializerDeserializer.getStartSize(b, s + 1);
+ int endOffset = AIntervalSerializerDeserializer.getIntervalEndOffset(b, s + 1) - 1;
+ int endSize = AIntervalSerializerDeserializer.getEndSize(b, s + 1);
+ IPrinter timeInstancePrinter = getIPrinter(typetag);
+ timeInstancePrinter.print(b, startOffset, startSize, ps);
+ ps.print(", \"end\": ");
+ timeInstancePrinter.print(b, endOffset, endSize, ps);
+ ps.print("}}");
+ };
+
+ private static IPrinter getIPrinter(byte typetag) throws HyracksDataException {
+ switch (EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typetag)) {
+ case DATE:
+ return ADatePrinterFactory.PRINTER;
+ case TIME:
+ return ATimePrinterFactory.PRINTER;
+ case DATETIME:
+ return ADateTimePrinterFactory.PRINTER;
+ default:
+ throw new HyracksDataException("Unsupported internal time types in interval: " + typetag);
+ }
+ }
+
@Override
public IPrinter createPrinter() {
- return AIntervalPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinter.java
deleted file mode 100644
index 8dce1e8..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinter.java
+++ /dev/null
@@ -1,48 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ALinePrinter implements IPrinter {
-
- public static final ALinePrinter INSTANCE = new ALinePrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"line\": ");
- ps.print(" [ { \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("] }, { \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
- ps.print("] } ] }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinterFactory.java
index 2cac3c0..fa9f116 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ALinePrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,21 @@ public class ALinePrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final ALinePrinterFactory INSTANCE = new ALinePrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"line\": ");
+ ps.print(" [ { \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
+ ps.print("] }, { \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
+ ps.print("] } ] }");
+ };
+
@Override
public IPrinter createPrinter() {
- return ALinePrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinter.java
deleted file mode 100644
index d9fd638..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinter.java
+++ /dev/null
@@ -1,38 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ANullPrinter implements IPrinter {
-
- public static final ANullPrinter INSTANCE = new ANullPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("null");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinterFactory.java
index fb7aca3..82c7d36 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullPrinterFactory.java
@@ -18,6 +18,8 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +28,10 @@ public class ANullPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final ANullPrinterFactory INSTANCE = new ANullPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> ps.print("null");
+
@Override
public IPrinter createPrinter() {
- return ANullPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullableFieldPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullableFieldPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullableFieldPrinterFactory.java
index a4f4200..c7e51ce 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullableFieldPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ANullableFieldPrinterFactory.java
@@ -31,7 +31,6 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
public class ANullableFieldPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
-
private AUnionType unionType;
public ANullableFieldPrinterFactory(AUnionType unionType) {
@@ -61,8 +60,6 @@ public class ANullableFieldPrinterFactory implements IPrinterFactory {
fieldPrinter.print(b, s, l, ps);
}
}
-
};
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinter.java
deleted file mode 100644
index 1acbc06..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinter.java
+++ /dev/null
@@ -1,172 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.om.types.ATypeTag;
-import org.apache.asterix.om.types.EnumDeserializer;
-import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AObjectPrinter implements IPrinter {
-
- public static final AObjectPrinter INSTANCE = new AObjectPrinter();
-
- private IPrinter recordPrinter = new ARecordPrinterFactory(null).createPrinter();
- private IPrinter orderedlistPrinter = new AOrderedlistPrinterFactory(null).createPrinter();
- private IPrinter unorderedListPrinter = new AUnorderedlistPrinterFactory(null).createPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(b[s]);
- switch (typeTag) {
- case INT8: {
- AInt8Printer.INSTANCE.print(b, s, l, ps);
- break;
- }
- case INT16: {
- AInt16Printer.INSTANCE.print(b, s, l, ps);
- break;
- }
- case INT32: {
- AInt32Printer.INSTANCE.print(b, s, l, ps);
- break;
- }
- case INT64: {
- AInt64Printer.INSTANCE.print(b, s, l, ps);
- break;
- }
- case MISSING:
- case NULL: {
- ANullPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case BOOLEAN: {
- ABooleanPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case FLOAT: {
- AFloatPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case DOUBLE: {
- ADoublePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case DATE: {
- ADatePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case TIME: {
- ATimePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case DATETIME: {
- ADateTimePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case DURATION: {
- ADurationPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case YEARMONTHDURATION: {
- AYearMonthDurationPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case DAYTIMEDURATION: {
- ADayTimeDurationPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case INTERVAL: {
- AIntervalPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case POINT: {
- APointPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case POINT3D: {
- APoint3DPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case LINE: {
- ALinePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case POLYGON: {
- APolygonPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case CIRCLE: {
- ACirclePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case RECTANGLE: {
- ARectanglePrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case STRING: {
- AStringPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case BINARY: {
- ABinaryHexPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case RECORD: {
- this.recordPrinter.init();
- recordPrinter.print(b, s, l, ps);
- break;
- }
- case ORDEREDLIST: {
- this.orderedlistPrinter.init();
- orderedlistPrinter.print(b, s, l, ps);
- break;
- }
- case UNORDEREDLIST: {
- this.unorderedListPrinter.init();
- unorderedListPrinter.print(b, s, l, ps);
- break;
- }
- case UUID: {
- AUUIDPrinter.INSTANCE.print(b, s, l, ps);
- break;
- }
- case ANY:
- case BITARRAY:
- case ENUM:
- case SHORTWITHOUTTYPEINFO:
- case SPARSERECORD:
- case SYSTEM_NULL:
- case TYPE:
- case UINT16:
- case UINT32:
- case UINT64:
- case UINT8:
- case UNION:
- throw new NotImplementedException("No printer for type " + typeTag);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinterFactory.java
index 52b1c34..20a89bd 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AObjectPrinterFactory.java
@@ -18,17 +18,145 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.om.pointables.AListVisitablePointable;
+import org.apache.asterix.om.pointables.ARecordVisitablePointable;
+import org.apache.asterix.om.pointables.base.DefaultOpenFieldType;
+import org.apache.asterix.om.pointables.printer.IPrintVisitor;
+import org.apache.asterix.om.pointables.printer.json.lossless.APrintVisitor;
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.asterix.om.types.EnumDeserializer;
+import org.apache.hyracks.algebricks.common.utils.Pair;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AObjectPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AObjectPrinterFactory INSTANCE = new AObjectPrinterFactory();
+ public static boolean printFlatValue(ATypeTag typeTag, byte[] b, int s, int l, PrintStream ps)
+ throws HyracksDataException {
+ switch (typeTag) {
+ case INT8:
+ AInt8PrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case INT16:
+ AInt16PrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case INT32:
+ AInt32PrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case INT64:
+ AInt64PrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case MISSING:
+ case NULL:
+ ANullPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case BOOLEAN:
+ ABooleanPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case FLOAT:
+ AFloatPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case DOUBLE:
+ ADoublePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case DATE:
+ ADatePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case TIME:
+ ATimePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case DATETIME:
+ ADateTimePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case DURATION:
+ ADurationPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case YEARMONTHDURATION:
+ AYearMonthDurationPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case DAYTIMEDURATION:
+ ADayTimeDurationPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case INTERVAL:
+ AIntervalPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case POINT:
+ APointPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case POINT3D:
+ APoint3DPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case LINE:
+ ALinePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case POLYGON:
+ APolygonPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case CIRCLE:
+ ACirclePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case RECTANGLE:
+ ARectanglePrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case STRING:
+ AStringPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case BINARY:
+ ABinaryHexPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ case UUID:
+ AUUIDPrinterFactory.PRINTER.print(b, s, l, ps);
+ return true;
+ default:
+ return false;
+ }
+ }
+
@Override
public IPrinter createPrinter() {
- return AObjectPrinter.INSTANCE;
- }
+ final ARecordVisitablePointable rPointable = new ARecordVisitablePointable(
+ DefaultOpenFieldType.NESTED_OPEN_RECORD_TYPE);
+ final AListVisitablePointable olPointable = new AListVisitablePointable(
+ DefaultOpenFieldType.NESTED_OPEN_AORDERED_LIST_TYPE);
+ final AListVisitablePointable ulPointable = new AListVisitablePointable(
+ DefaultOpenFieldType.NESTED_OPEN_AUNORDERED_LIST_TYPE);
+ final Pair<PrintStream, ATypeTag> streamTag = new Pair<>(null, null);
+
+ final IPrintVisitor visitor = new APrintVisitor();
+ return (byte[] b, int s, int l, PrintStream ps) -> {
+ ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(b[s]);
+ if (!printFlatValue(typeTag, b, s, l, ps)) {
+ streamTag.first = ps;
+ streamTag.second = typeTag;
+ try {
+ switch (typeTag) {
+ case RECORD:
+ rPointable.set(b, s, l);
+ visitor.visit(rPointable, streamTag);
+ break;
+ case ORDEREDLIST:
+ olPointable.set(b, s, l);
+ visitor.visit(olPointable, streamTag);
+ break;
+ case UNORDEREDLIST:
+ ulPointable.set(b, s, l);
+ visitor.visit(ulPointable, streamTag);
+ break;
+ default:
+ throw new HyracksDataException("No printer for type " + typeTag);
+ }
+ } catch (AsterixException e) {
+ throw new HyracksDataException(e);
+ }
+ }
+ };
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AOrderedlistPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AOrderedlistPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AOrderedlistPrinterFactory.java
index c3d6e76..54092f8 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AOrderedlistPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AOrderedlistPrinterFactory.java
@@ -36,7 +36,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AOrderedlistPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
- private AOrderedListType orderedlistType;
+ private final AOrderedListType orderedlistType;
public AOrderedlistPrinterFactory(AOrderedListType orderedlistType) {
this.orderedlistType = orderedlistType;
@@ -44,16 +44,14 @@ public class AOrderedlistPrinterFactory implements IPrinterFactory {
@Override
public IPrinter createPrinter() {
-
PointableAllocator allocator = new PointableAllocator();
- final IAType inputType = orderedlistType == null ? DefaultOpenFieldType
- .getDefaultOpenFieldType(ATypeTag.ORDEREDLIST) : orderedlistType;
+ final IAType inputType = orderedlistType == null
+ ? DefaultOpenFieldType.getDefaultOpenFieldType(ATypeTag.ORDEREDLIST) : orderedlistType;
final IVisitablePointable listAccessor = allocator.allocateListValue(inputType);
final APrintVisitor printVisitor = new APrintVisitor();
- final Pair<PrintStream, ATypeTag> arg = new Pair<PrintStream, ATypeTag>(null, null);
+ final Pair<PrintStream, ATypeTag> arg = new Pair<>(null, null);
return new IPrinter() {
-
@Override
public void init() {
arg.second = inputType.getTypeTag();
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinter.java
deleted file mode 100644
index 7d47713..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinter.java
+++ /dev/null
@@ -1,45 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class APoint3DPrinter implements IPrinter {
-
- public static final APoint3DPrinter INSTANCE = new APoint3DPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"point3d\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
- ps.print("] }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinterFactory.java
index be87f7c..78eec0c 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APoint3DPrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,18 @@ public class APoint3DPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final APoint3DPrinterFactory INSTANCE = new APoint3DPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"point3d\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
+ ps.print("] }");
+ };
+
@Override
public IPrinter createPrinter() {
- return APoint3DPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinter.java
deleted file mode 100644
index cce6983..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinter.java
+++ /dev/null
@@ -1,43 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class APointPrinter implements IPrinter {
-
- public static final APointPrinter INSTANCE = new APointPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("] }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinterFactory.java
index 5ebe4bb..b563262 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APointPrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,16 @@ public class APointPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final APointPrinterFactory INSTANCE = new APointPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
+ ps.print("] }");
+ };
+
@Override
public IPrinter createPrinter() {
- return APointPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinter.java
deleted file mode 100644
index c1495c4..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinter.java
+++ /dev/null
@@ -1,59 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt16SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class APolygonPrinter implements IPrinter {
-
- public static final APolygonPrinter INSTANCE = new APolygonPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- short numberOfPoints = AInt16SerializerDeserializer.getShort(b, s + 1);
- s += 3;
-
- ps.print("{ \"polygon\": [");
-
- for (int i = 0; i < numberOfPoints; i++) {
- if (i > 0)
- ps.print(",");
-
- ps.print("{ \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 8));
- ps.print("] }");
-
- s += 16;
- }
-
- ps.print("] }");
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinterFactory.java
index 0a50695..4506fb7 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/APolygonPrinterFactory.java
@@ -18,6 +18,10 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
+import org.apache.asterix.dataflow.data.nontagged.serde.AInt16SerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +30,26 @@ public class APolygonPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final APolygonPrinterFactory INSTANCE = new APolygonPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ short numberOfPoints = AInt16SerializerDeserializer.getShort(b, s + 1);
+ s += 3;
+ ps.print("{ \"polygon\": [");
+ for (int i = 0; i < numberOfPoints; i++) {
+ if (i > 0) {
+ ps.print(",");
+ }
+ ps.print("{ \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 8));
+ ps.print("] }");
+ s += 16;
+ }
+ ps.print("] }");
+ };
+
@Override
public IPrinter createPrinter() {
- return APolygonPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARecordPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARecordPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARecordPrinterFactory.java
index ab52e86..e2ffa2c 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARecordPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARecordPrinterFactory.java
@@ -44,16 +44,14 @@ public class ARecordPrinterFactory implements IPrinterFactory {
@Override
public IPrinter createPrinter() {
-
- PointableAllocator allocator = new PointableAllocator();
+ final PointableAllocator allocator = new PointableAllocator();
final IAType inputType = recType == null ? DefaultOpenFieldType.getDefaultOpenFieldType(ATypeTag.RECORD)
: recType;
final IVisitablePointable recAccessor = allocator.allocateRecordValue(inputType);
final APrintVisitor printVisitor = new APrintVisitor();
- final Pair<PrintStream, ATypeTag> arg = new Pair<PrintStream, ATypeTag>(null, null);
+ final Pair<PrintStream, ATypeTag> arg = new Pair<>(null, null);
return new IPrinter() {
-
@Override
public void init() {
arg.second = inputType.getTypeTag();
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinter.java
deleted file mode 100644
index ce203c3..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinter.java
+++ /dev/null
@@ -1,48 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ARectanglePrinter implements IPrinter {
-
- public static final ARectanglePrinter INSTANCE = new ARectanglePrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"rectangle\": [");
- ps.print("{ \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
- ps.print("] }, { \"point\": [");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
- ps.print(", ");
- ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
- ps.print("] } ] }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinterFactory.java
index d31c358..27d4642 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ARectanglePrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,21 @@ public class ARectanglePrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final ARectanglePrinterFactory INSTANCE = new ARectanglePrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"rectangle\": [");
+ ps.print("{ \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 1));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 9));
+ ps.print("] }, { \"point\": [");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 17));
+ ps.print(", ");
+ ps.print(ADoubleSerializerDeserializer.getDouble(b, s + 25));
+ ps.print("] } ] }");
+ };
+
@Override
public IPrinter createPrinter() {
- return ARectanglePrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinter.java
deleted file mode 100644
index f1835ad..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinter.java
+++ /dev/null
@@ -1,44 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.IOException;
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.printers.PrintTools;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AStringPrinter implements IPrinter {
-
- public static final AStringPrinter INSTANCE = new AStringPrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- try {
- PrintTools.writeUTF8StringAsJSON(b, s + 1, l - 1, ps);
- } catch (IOException e) {
- throw new HyracksDataException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinterFactory.java
index 1487f33..b5cf503 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AStringPrinterFactory.java
@@ -18,17 +18,29 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.printers.PrintTools;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AStringPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final AStringPrinterFactory INSTANCE = new AStringPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ try {
+ PrintTools.writeUTF8StringAsJSON(b, s + 1, l - 1, ps);
+ } catch (IOException e) {
+ throw new HyracksDataException(e);
+ }
+ };
+
@Override
public IPrinter createPrinter() {
- return AStringPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinter.java
deleted file mode 100644
index aefb2b0..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinter.java
+++ /dev/null
@@ -1,41 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.printers.PrintTools;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ATimePrinter implements IPrinter {
-
- public static final ATimePrinter INSTANCE = new ATimePrinter();
-
- @Override
- public void init() {
- }
-
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- ps.print("{ \"time\": \"");
- PrintTools.printTimeString(b, s, l, ps);
- ps.print("\" }");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinterFactory.java
index abd4d93..327a680 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/ATimePrinterFactory.java
@@ -18,6 +18,9 @@
*/
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
+import java.io.PrintStream;
+
+import org.apache.asterix.dataflow.data.nontagged.printers.PrintTools;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -26,9 +29,14 @@ public class ATimePrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
public static final ATimePrinterFactory INSTANCE = new ATimePrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ ps.print("{ \"time\": \"");
+ PrintTools.printTimeString(b, s, l, ps);
+ ps.print("\" }");
+ };
+
@Override
public IPrinter createPrinter() {
- return ATimePrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinter.java
deleted file mode 100644
index d20c8ad..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinter.java
+++ /dev/null
@@ -1,43 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.om.base.AUUID;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AUUIDPrinter implements IPrinter {
-
- public static final AUUIDPrinter INSTANCE = new AUUIDPrinter();
-
- @Override
- public void init() {
- }
-
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
- StringBuilder buf = new StringBuilder(AUUID.UUID_CHARS + 2);
- buf.append('"');
- AUUID.appendLiteralOnly(b, s + 1, buf).append('"');
- ps.print(buf.toString());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinterFactory.java
index 707d78c..2366a98 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUUIDPrinterFactory.java
@@ -19,7 +19,9 @@
package org.apache.asterix.dataflow.data.nontagged.printers.json.lossless;
-import org.apache.asterix.dataflow.data.nontagged.printers.adm.AUUIDPrinter;
+import java.io.PrintStream;
+
+import org.apache.asterix.om.base.AUUID;
import org.apache.hyracks.algebricks.data.IPrinter;
import org.apache.hyracks.algebricks.data.IPrinterFactory;
@@ -29,9 +31,15 @@ public class AUUIDPrinterFactory implements IPrinterFactory {
public static final AUUIDPrinterFactory INSTANCE = new AUUIDPrinterFactory();
+ public static final IPrinter PRINTER = (byte[] b, int s, int l, PrintStream ps) -> {
+ StringBuilder buf = new StringBuilder(AUUID.UUID_CHARS + 2);
+ buf.append('"');
+ AUUID.appendLiteralOnly(b, s + 1, buf).append('"');
+ ps.print(buf.toString());
+ };
+
@Override
public IPrinter createPrinter() {
- return AUUIDPrinter.INSTANCE;
+ return PRINTER;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnionPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnionPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnionPrinterFactory.java
index a0435c6..15bdfed 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnionPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnionPrinterFactory.java
@@ -41,9 +41,7 @@ public class AUnionPrinterFactory implements IPrinterFactory {
@Override
public IPrinter createPrinter() {
-
return new IPrinter() {
-
private IPrinter[] printers;
private List<IAType> unionList;
@@ -73,5 +71,4 @@ public class AUnionPrinterFactory implements IPrinterFactory {
}
};
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnorderedlistPrinterFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnorderedlistPrinterFactory.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnorderedlistPrinterFactory.java
index c77115b..8251f45 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnorderedlistPrinterFactory.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AUnorderedlistPrinterFactory.java
@@ -35,7 +35,7 @@ import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AUnorderedlistPrinterFactory implements IPrinterFactory {
private static final long serialVersionUID = 1L;
- private AUnorderedListType unorderedlistType;
+ private final AUnorderedListType unorderedlistType;
public AUnorderedlistPrinterFactory(AUnorderedListType unorderedlistType) {
this.unorderedlistType = unorderedlistType;
@@ -43,16 +43,14 @@ public class AUnorderedlistPrinterFactory implements IPrinterFactory {
@Override
public IPrinter createPrinter() {
-
PointableAllocator allocator = new PointableAllocator();
final IAType inputType = unorderedlistType == null
? DefaultOpenFieldType.getDefaultOpenFieldType(ATypeTag.UNORDEREDLIST) : unorderedlistType;
final IVisitablePointable listAccessor = allocator.allocateListValue(inputType);
final APrintVisitor printVisitor = new APrintVisitor();
- final Pair<PrintStream, ATypeTag> arg = new Pair<PrintStream, ATypeTag>(null, null);
+ final Pair<PrintStream, ATypeTag> arg = new Pair<>(null, null);
return new IPrinter() {
-
@Override
public void init() {
arg.second = inputType.getTypeTag();
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/fd7fb5a1/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AYearMonthDurationPrinter.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AYearMonthDurationPrinter.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AYearMonthDurationPrinter.java
deleted file mode 100644
index 7e4d176..0000000
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/json/lossless/AYearMonthDurationPrinter.java
+++ /dev/null
@@ -1,51 +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.asterix.dataflow.data.nontagged.printers.json.lossless;
-
-import java.io.PrintStream;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.AInt32SerializerDeserializer;
-import org.apache.hyracks.algebricks.data.IPrinter;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class AYearMonthDurationPrinter implements IPrinter {
-
- public static final AYearMonthDurationPrinter INSTANCE = new AYearMonthDurationPrinter();
-
- /* (non-Javadoc)
- * @see org.apache.hyracks.algebricks.data.IPrinter#init()
- */
- @Override
- public void init() {
- }
-
- /* (non-Javadoc)
- * @see org.apache.hyracks.algebricks.data.IPrinter#print(byte[], int, int, java.io.PrintStream)
- */
- @Override
- public void print(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException {
-
- int months = AInt32SerializerDeserializer.getInt(b, s + 1);
-
- ps.print("{ \"year-month-duration\": ");
- ps.print(months);
- ps.print("}");
- }
-
-}