diff --git a/lib-ogc/swe-common-core/src/main/java/org/vast/swe/fast/CotDataReader.java b/lib-ogc/swe-common-core/src/main/java/org/vast/swe/fast/CotDataReader.java new file mode 100644 index 0000000000..827e088043 --- /dev/null +++ b/lib-ogc/swe-common-core/src/main/java/org/vast/swe/fast/CotDataReader.java @@ -0,0 +1,64 @@ +/***************************** BEGIN LICENSE BLOCK *************************** + +The contents of this file are subject to the Mozilla Public License, v. 2.0. +If a copy of the MPL was not distributed with this file, You can obtain one +at http://mozilla.org/MPL/2.0/. + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the License. + +Copyright (C) 2012-2015 Sensia Software LLC. All Rights Reserved. + +******************************* END LICENSE BLOCK ***************************/ + +package org.vast.swe.fast; + +import com.ctc.wstx.api.WstxOutputProperties; +import com.google.gson.FormattingStyle; +import com.google.gson.Strictness; +import net.opengis.swe.v20.*; +import net.opengis.swe.v20.Boolean; +import org.vast.data.AbstractArrayImpl; +import org.vast.data.XMLEncodingImpl; +import org.vast.swe.SWEDataTypeUtils; +import org.vast.util.DateTimeFormat; +import org.vast.util.WriterException; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.*; +import java.io.IOException; +import java.io.OutputStream; +import java.io.Reader; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + *
+ * New implementation of XML data writer with better efficiency since the + * write tree is pre-computed during init instead of being re-evaluated + * while iterating through the component tree. + *
+ * + * @author Ashley Poteau + * @since Dec 2, 2025 + */ + +public class CotDataReader extends XmlDataParser { + static final String COT_ERROR = "Error writing XML stream for "; + private final Reader in; + + protected XMLStreamReader xmlReader; + protected XMLStreamWriter xmlWriter; + protected String namespace; + protected String prefix; + protected Map+ * New implementation of XML data writer with better efficiency since the + * write tree is pre-computed during init instead of being re-evaluated + * while iterating through the component tree. + *
+ * + * @author Ashley Poteau + * @since Oct 31, 2025 + */ +public class CotDataWriter extends XmlDataWriter { + static final String COT_ERROR = "Error writing XML stream for "; + + protected String namespace; + protected String prefix; + protected Map
+ * Helper class to create SWE structures used for geo-positioning
+ * This includes location and attitude but also linear velocity, angular rate,
+ * and linear acceleration
+ *
string id = 1;
+ * @return The id.
+ */
+ java.lang.String getId();
+ /**
+ * string id = 1;
+ * @return The bytes for id.
+ */
+ com.google.protobuf.ByteString
+ getIdBytes();
+
+ /**
+ * string datastreamId = 2;
+ * @return The datastreamId.
+ */
+ java.lang.String getDatastreamId();
+ /**
+ * string datastreamId = 2;
+ * @return The bytes for datastreamId.
+ */
+ com.google.protobuf.ByteString
+ getDatastreamIdBytes();
+
+ /**
+ * string foiId = 3;
+ * @return The foiId.
+ */
+ java.lang.String getFoiId();
+ /**
+ * string foiId = 3;
+ * @return The bytes for foiId.
+ */
+ com.google.protobuf.ByteString
+ getFoiIdBytes();
+
+ /**
+ * string phenomenonTime = 4;
+ * @return The phenomenonTime.
+ */
+ java.lang.String getPhenomenonTime();
+ /**
+ * string phenomenonTime = 4;
+ * @return The bytes for phenomenonTime.
+ */
+ com.google.protobuf.ByteString
+ getPhenomenonTimeBytes();
+
+ /**
+ * string resultTime = 5;
+ * @return The resultTime.
+ */
+ java.lang.String getResultTime();
+ /**
+ * string resultTime = 5;
+ * @return The bytes for resultTime.
+ */
+ com.google.protobuf.ByteString
+ getResultTimeBytes();
+
+ /**
+ * .obs.Results results = 6;
+ * @return Whether the results field is set.
+ */
+ boolean hasResults();
+ /**
+ * .obs.Results results = 6;
+ * @return The results.
+ */
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results getResults();
+ /**
+ * .obs.Results results = 6;
+ */
+ org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder getResultsOrBuilder();
+ }
+ /**
+ * Protobuf type {@code obs.OshObservation}
+ */
+ public static final class OshObservation extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:obs.OshObservation)
+ OshObservationOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use OshObservation.newBuilder() to construct.
+ private OshObservation(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private OshObservation() {
+ id_ = "";
+ datastreamId_ = "";
+ foiId_ = "";
+ phenomenonTime_ = "";
+ resultTime_ = "";
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new OshObservation();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.sensorhub.impl.service.consys.obs.proto.Observation.internal_static_obs_OshObservation_descriptor;
+ }
+
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.sensorhub.impl.service.consys.obs.proto.Observation.internal_static_obs_OshObservation_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation.class, org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation.Builder.class);
+ }
+
+ public static final int ID_FIELD_NUMBER = 1;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object id_ = "";
+ /**
+ * string id = 1;
+ * @return The id.
+ */
+ @java.lang.Override
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ }
+ }
+ /**
+ * string id = 1;
+ * @return The bytes for id.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DATASTREAMID_FIELD_NUMBER = 2;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object datastreamId_ = "";
+ /**
+ * string datastreamId = 2;
+ * @return The datastreamId.
+ */
+ @java.lang.Override
+ public java.lang.String getDatastreamId() {
+ java.lang.Object ref = datastreamId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ datastreamId_ = s;
+ return s;
+ }
+ }
+ /**
+ * string datastreamId = 2;
+ * @return The bytes for datastreamId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getDatastreamIdBytes() {
+ java.lang.Object ref = datastreamId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ datastreamId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int FOIID_FIELD_NUMBER = 3;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object foiId_ = "";
+ /**
+ * string foiId = 3;
+ * @return The foiId.
+ */
+ @java.lang.Override
+ public java.lang.String getFoiId() {
+ java.lang.Object ref = foiId_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ foiId_ = s;
+ return s;
+ }
+ }
+ /**
+ * string foiId = 3;
+ * @return The bytes for foiId.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getFoiIdBytes() {
+ java.lang.Object ref = foiId_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ foiId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PHENOMENONTIME_FIELD_NUMBER = 4;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object phenomenonTime_ = "";
+ /**
+ * string phenomenonTime = 4;
+ * @return The phenomenonTime.
+ */
+ @java.lang.Override
+ public java.lang.String getPhenomenonTime() {
+ java.lang.Object ref = phenomenonTime_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ phenomenonTime_ = s;
+ return s;
+ }
+ }
+ /**
+ * string phenomenonTime = 4;
+ * @return The bytes for phenomenonTime.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getPhenomenonTimeBytes() {
+ java.lang.Object ref = phenomenonTime_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ phenomenonTime_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int RESULTTIME_FIELD_NUMBER = 5;
+ @SuppressWarnings("serial")
+ private volatile java.lang.Object resultTime_ = "";
+ /**
+ * string resultTime = 5;
+ * @return The resultTime.
+ */
+ @java.lang.Override
+ public java.lang.String getResultTime() {
+ java.lang.Object ref = resultTime_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ resultTime_ = s;
+ return s;
+ }
+ }
+ /**
+ * string resultTime = 5;
+ * @return The bytes for resultTime.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getResultTimeBytes() {
+ java.lang.Object ref = resultTime_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ resultTime_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int RESULTS_FIELD_NUMBER = 6;
+ private org.sensorhub.impl.service.consys.obs.proto.Observation.Results results_;
+ /**
+ * .obs.Results results = 6;
+ * @return Whether the results field is set.
+ */
+ @java.lang.Override
+ public boolean hasResults() {
+ return results_ != null;
+ }
+ /**
+ * .obs.Results results = 6;
+ * @return The results.
+ */
+ @java.lang.Override
+ public org.sensorhub.impl.service.consys.obs.proto.Observation.Results getResults() {
+ return results_ == null ? org.sensorhub.impl.service.consys.obs.proto.Observation.Results.getDefaultInstance() : results_;
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ @java.lang.Override
+ public org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder getResultsOrBuilder() {
+ return results_ == null ? org.sensorhub.impl.service.consys.obs.proto.Observation.Results.getDefaultInstance() : results_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @java.lang.Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @java.lang.Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(datastreamId_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, datastreamId_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(foiId_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, foiId_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(phenomenonTime_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, phenomenonTime_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resultTime_)) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, resultTime_);
+ }
+ if (results_ != null) {
+ output.writeMessage(6, getResults());
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ @java.lang.Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(datastreamId_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, datastreamId_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(foiId_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, foiId_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(phenomenonTime_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, phenomenonTime_);
+ }
+ if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resultTime_)) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, resultTime_);
+ }
+ if (results_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(6, getResults());
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation)) {
+ return super.equals(obj);
+ }
+ org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation other = (org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation) obj;
+
+ if (!getId()
+ .equals(other.getId())) return false;
+ if (!getDatastreamId()
+ .equals(other.getDatastreamId())) return false;
+ if (!getFoiId()
+ .equals(other.getFoiId())) return false;
+ if (!getPhenomenonTime()
+ .equals(other.getPhenomenonTime())) return false;
+ if (!getResultTime()
+ .equals(other.getResultTime())) return false;
+ if (hasResults() != other.hasResults()) return false;
+ if (hasResults()) {
+ if (!getResults()
+ .equals(other.getResults())) return false;
+ }
+ if (!getUnknownFields().equals(other.getUnknownFields())) return false;
+ return true;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + ID_FIELD_NUMBER;
+ hash = (53 * hash) + getId().hashCode();
+ hash = (37 * hash) + DATASTREAMID_FIELD_NUMBER;
+ hash = (53 * hash) + getDatastreamId().hashCode();
+ hash = (37 * hash) + FOIID_FIELD_NUMBER;
+ hash = (53 * hash) + getFoiId().hashCode();
+ hash = (37 * hash) + PHENOMENONTIME_FIELD_NUMBER;
+ hash = (53 * hash) + getPhenomenonTime().hashCode();
+ hash = (37 * hash) + RESULTTIME_FIELD_NUMBER;
+ hash = (53 * hash) + getResultTime().hashCode();
+ if (hasResults()) {
+ hash = (37 * hash) + RESULTS_FIELD_NUMBER;
+ hash = (53 * hash) + getResults().hashCode();
+ }
+ hash = (29 * hash) + getUnknownFields().hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @java.lang.Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @java.lang.Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code obs.OshObservation}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builderstring id = 1;
+ * @return The id.
+ */
+ public java.lang.String getId() {
+ java.lang.Object ref = id_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ id_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string id = 1;
+ * @return The bytes for id.
+ */
+ public com.google.protobuf.ByteString
+ getIdBytes() {
+ java.lang.Object ref = id_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ id_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string id = 1;
+ * @param value The id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+ /**
+ * string id = 1;
+ * @return This builder for chaining.
+ */
+ public Builder clearId() {
+ id_ = getDefaultInstance().getId();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ return this;
+ }
+ /**
+ * string id = 1;
+ * @param value The bytes for id to set.
+ * @return This builder for chaining.
+ */
+ public Builder setIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ id_ = value;
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object datastreamId_ = "";
+ /**
+ * string datastreamId = 2;
+ * @return The datastreamId.
+ */
+ public java.lang.String getDatastreamId() {
+ java.lang.Object ref = datastreamId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ datastreamId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string datastreamId = 2;
+ * @return The bytes for datastreamId.
+ */
+ public com.google.protobuf.ByteString
+ getDatastreamIdBytes() {
+ java.lang.Object ref = datastreamId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ datastreamId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string datastreamId = 2;
+ * @param value The datastreamId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatastreamId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ datastreamId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+ /**
+ * string datastreamId = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearDatastreamId() {
+ datastreamId_ = getDefaultInstance().getDatastreamId();
+ bitField0_ = (bitField0_ & ~0x00000002);
+ onChanged();
+ return this;
+ }
+ /**
+ * string datastreamId = 2;
+ * @param value The bytes for datastreamId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setDatastreamIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ datastreamId_ = value;
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object foiId_ = "";
+ /**
+ * string foiId = 3;
+ * @return The foiId.
+ */
+ public java.lang.String getFoiId() {
+ java.lang.Object ref = foiId_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ foiId_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string foiId = 3;
+ * @return The bytes for foiId.
+ */
+ public com.google.protobuf.ByteString
+ getFoiIdBytes() {
+ java.lang.Object ref = foiId_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ foiId_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string foiId = 3;
+ * @param value The foiId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFoiId(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ foiId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+ /**
+ * string foiId = 3;
+ * @return This builder for chaining.
+ */
+ public Builder clearFoiId() {
+ foiId_ = getDefaultInstance().getFoiId();
+ bitField0_ = (bitField0_ & ~0x00000004);
+ onChanged();
+ return this;
+ }
+ /**
+ * string foiId = 3;
+ * @param value The bytes for foiId to set.
+ * @return This builder for chaining.
+ */
+ public Builder setFoiIdBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ foiId_ = value;
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object phenomenonTime_ = "";
+ /**
+ * string phenomenonTime = 4;
+ * @return The phenomenonTime.
+ */
+ public java.lang.String getPhenomenonTime() {
+ java.lang.Object ref = phenomenonTime_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ phenomenonTime_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string phenomenonTime = 4;
+ * @return The bytes for phenomenonTime.
+ */
+ public com.google.protobuf.ByteString
+ getPhenomenonTimeBytes() {
+ java.lang.Object ref = phenomenonTime_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ phenomenonTime_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string phenomenonTime = 4;
+ * @param value The phenomenonTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPhenomenonTime(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ phenomenonTime_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+ /**
+ * string phenomenonTime = 4;
+ * @return This builder for chaining.
+ */
+ public Builder clearPhenomenonTime() {
+ phenomenonTime_ = getDefaultInstance().getPhenomenonTime();
+ bitField0_ = (bitField0_ & ~0x00000008);
+ onChanged();
+ return this;
+ }
+ /**
+ * string phenomenonTime = 4;
+ * @param value The bytes for phenomenonTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setPhenomenonTimeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ phenomenonTime_ = value;
+ bitField0_ |= 0x00000008;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object resultTime_ = "";
+ /**
+ * string resultTime = 5;
+ * @return The resultTime.
+ */
+ public java.lang.String getResultTime() {
+ java.lang.Object ref = resultTime_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ resultTime_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * string resultTime = 5;
+ * @return The bytes for resultTime.
+ */
+ public com.google.protobuf.ByteString
+ getResultTimeBytes() {
+ java.lang.Object ref = resultTime_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ resultTime_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string resultTime = 5;
+ * @param value The resultTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResultTime(
+ java.lang.String value) {
+ if (value == null) { throw new NullPointerException(); }
+ resultTime_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+ /**
+ * string resultTime = 5;
+ * @return This builder for chaining.
+ */
+ public Builder clearResultTime() {
+ resultTime_ = getDefaultInstance().getResultTime();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ return this;
+ }
+ /**
+ * string resultTime = 5;
+ * @param value The bytes for resultTime to set.
+ * @return This builder for chaining.
+ */
+ public Builder setResultTimeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) { throw new NullPointerException(); }
+ checkByteStringIsUtf8(value);
+ resultTime_ = value;
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return this;
+ }
+
+ private org.sensorhub.impl.service.consys.obs.proto.Observation.Results results_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results, org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder, org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder> resultsBuilder_;
+ /**
+ * .obs.Results results = 6;
+ * @return Whether the results field is set.
+ */
+ public boolean hasResults() {
+ return ((bitField0_ & 0x00000020) != 0);
+ }
+ /**
+ * .obs.Results results = 6;
+ * @return The results.
+ */
+ public org.sensorhub.impl.service.consys.obs.proto.Observation.Results getResults() {
+ if (resultsBuilder_ == null) {
+ return results_ == null ? org.sensorhub.impl.service.consys.obs.proto.Observation.Results.getDefaultInstance() : results_;
+ } else {
+ return resultsBuilder_.getMessage();
+ }
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public Builder setResults(org.sensorhub.impl.service.consys.obs.proto.Observation.Results value) {
+ if (resultsBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ results_ = value;
+ } else {
+ resultsBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public Builder setResults(
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder builderForValue) {
+ if (resultsBuilder_ == null) {
+ results_ = builderForValue.build();
+ } else {
+ resultsBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public Builder mergeResults(org.sensorhub.impl.service.consys.obs.proto.Observation.Results value) {
+ if (resultsBuilder_ == null) {
+ if (((bitField0_ & 0x00000020) != 0) &&
+ results_ != null &&
+ results_ != org.sensorhub.impl.service.consys.obs.proto.Observation.Results.getDefaultInstance()) {
+ getResultsBuilder().mergeFrom(value);
+ } else {
+ results_ = value;
+ }
+ } else {
+ resultsBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return this;
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public Builder clearResults() {
+ bitField0_ = (bitField0_ & ~0x00000020);
+ results_ = null;
+ if (resultsBuilder_ != null) {
+ resultsBuilder_.dispose();
+ resultsBuilder_ = null;
+ }
+ onChanged();
+ return this;
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder getResultsBuilder() {
+ bitField0_ |= 0x00000020;
+ onChanged();
+ return getResultsFieldBuilder().getBuilder();
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ public org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder getResultsOrBuilder() {
+ if (resultsBuilder_ != null) {
+ return resultsBuilder_.getMessageOrBuilder();
+ } else {
+ return results_ == null ?
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results.getDefaultInstance() : results_;
+ }
+ }
+ /**
+ * .obs.Results results = 6;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results, org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder, org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder>
+ getResultsFieldBuilder() {
+ if (resultsBuilder_ == null) {
+ resultsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results, org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder, org.sensorhub.impl.service.consys.obs.proto.Observation.ResultsOrBuilder>(
+ getResults(),
+ getParentForChildren(),
+ isClean());
+ results_ = null;
+ }
+ return resultsBuilder_;
+ }
+ @java.lang.Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:obs.OshObservation)
+ }
+
+ // @@protoc_insertion_point(class_scope:obs.OshObservation)
+ private static final org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation();
+ }
+
+ public static org.sensorhub.impl.service.consys.obs.proto.Observation.OshObservation getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parsermap<string, string> values = 1;
+ */
+ int getValuesCount();
+ /**
+ * map<string, string> values = 1;
+ */
+ boolean containsValues(
+ java.lang.String key);
+ /**
+ * Use {@link #getValuesMap()} instead.
+ */
+ @java.lang.Deprecated
+ java.util.Mapmap<string, string> values = 1;
+ */
+ java.util.Mapmap<string, string> values = 1;
+ */
+ /* nullable */
+java.lang.String getValuesOrDefault(
+ java.lang.String key,
+ /* nullable */
+java.lang.String defaultValue);
+ /**
+ * map<string, string> values = 1;
+ */
+ java.lang.String getValuesOrThrow(
+ java.lang.String key);
+ }
+ /**
+ * Protobuf type {@code obs.Results}
+ */
+ public static final class Results extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:obs.Results)
+ ResultsOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use Results.newBuilder() to construct.
+ private Results(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private Results() {
+ }
+
+ @java.lang.Override
+ @SuppressWarnings({"unused"})
+ protected java.lang.Object newInstance(
+ UnusedPrivateParameter unused) {
+ return new Results();
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return org.sensorhub.impl.service.consys.obs.proto.Observation.internal_static_obs_Results_descriptor;
+ }
+
+ @SuppressWarnings({"rawtypes"})
+ @java.lang.Override
+ protected com.google.protobuf.MapField internalGetMapField(
+ int number) {
+ switch (number) {
+ case 1:
+ return internalGetValues();
+ default:
+ throw new RuntimeException(
+ "Invalid map field number: " + number);
+ }
+ }
+ @java.lang.Override
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return org.sensorhub.impl.service.consys.obs.proto.Observation.internal_static_obs_Results_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ org.sensorhub.impl.service.consys.obs.proto.Observation.Results.class, org.sensorhub.impl.service.consys.obs.proto.Observation.Results.Builder.class);
+ }
+
+ public static final int VALUES_FIELD_NUMBER = 1;
+ private static final class ValuesDefaultEntryHolder {
+ static final com.google.protobuf.MapEntry<
+ java.lang.String, java.lang.String> defaultEntry =
+ com.google.protobuf.MapEntry
+ .map<string, string> values = 1;
+ */
+ @java.lang.Override
+ public boolean containsValues(
+ java.lang.String key) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ return internalGetValues().getMap().containsKey(key);
+ }
+ /**
+ * Use {@link #getValuesMap()} instead.
+ */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public /* nullable */
+java.lang.String getValuesOrDefault(
+ java.lang.String key,
+ /* nullable */
+java.lang.String defaultValue) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public java.lang.String getValuesOrThrow(
+ java.lang.String key) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public boolean containsValues(
+ java.lang.String key) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ return internalGetValues().getMap().containsKey(key);
+ }
+ /**
+ * Use {@link #getValuesMap()} instead.
+ */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public /* nullable */
+java.lang.String getValuesOrDefault(
+ java.lang.String key,
+ /* nullable */
+java.lang.String defaultValue) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ java.util.Mapmap<string, string> values = 1;
+ */
+ @java.lang.Override
+ public java.lang.String getValuesOrThrow(
+ java.lang.String key) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ java.util.Mapmap<string, string> values = 1;
+ */
+ public Builder removeValues(
+ java.lang.String key) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ internalGetMutableValues().getMutableMap()
+ .remove(key);
+ return this;
+ }
+ /**
+ * Use alternate mutation accessors instead.
+ */
+ @java.lang.Deprecated
+ public java.util.Mapmap<string, string> values = 1;
+ */
+ public Builder putValues(
+ java.lang.String key,
+ java.lang.String value) {
+ if (key == null) { throw new NullPointerException("map key"); }
+ if (value == null) { throw new NullPointerException("map value"); }
+ internalGetMutableValues().getMutableMap()
+ .put(key, value);
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ /**
+ * map<string, string> values = 1;
+ */
+ public Builder putAllValues(
+ java.util.Map
@@ -77,7 +79,7 @@ protected BaseResourceHandler(S dataStore, IdEncoder idEncoder, HandlerContext c
}
- protected abstract ResourceBinding
@@ -49,9 +51,9 @@ protected ResourceBinding(RequestContext ctx, IdEncoders idEncoders)
public abstract V deserialize() throws IOException;
- public abstract void serialize(K key, V res, boolean showLinks) throws IOException;
- public abstract void startCollection() throws IOException;
- public abstract void endCollection(Collection
+ * Base class for all XML resource formatters
+ *