aboutsummaryrefslogtreecommitdiffstats
path: root/utils/src/main/java/org/onap
diff options
context:
space:
mode:
Diffstat (limited to 'utils/src/main/java/org/onap')
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/CoderException.java7
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoder.java4
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoderObject.java19
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/StandardValCoder.java119
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/StandardYamlCoder.java5
-rw-r--r--utils/src/main/java/org/onap/policy/common/utils/coder/YamlJsonTranslator.java9
6 files changed, 25 insertions, 138 deletions
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/CoderException.java b/utils/src/main/java/org/onap/policy/common/utils/coder/CoderException.java
index 60e85733..8390d175 100644
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/CoderException.java
+++ b/utils/src/main/java/org/onap/policy/common/utils/coder/CoderException.java
@@ -1,8 +1,7 @@
/*
* ============LICENSE_START=======================================================
- * ONAP PAP
- * ================================================================================
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,10 +19,14 @@
package org.onap.policy.common.utils.coder;
+import java.io.Serial;
+
/**
* Exceptions generated by coders.
*/
public class CoderException extends Exception {
+
+ @Serial
private static final long serialVersionUID = 1L;
public CoderException() {
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoder.java b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoder.java
index d6135afd..834a8504 100644
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoder.java
+++ b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoder.java
@@ -3,6 +3,7 @@
* ONAP
* ================================================================================
* Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -179,7 +180,6 @@ public class StandardCoder implements Coder {
public <T> T decode(String json, Class<T> clazz) throws CoderException {
try {
return fromJson(json, clazz);
-
} catch (RuntimeException e) {
throw new CoderException(e);
}
@@ -378,7 +378,7 @@ public class StandardCoder implements Coder {
/**
* Used to read/write a JsonElement.
*/
- private static TypeAdapter<JsonElement> elementAdapter = new Gson().getAdapter(JsonElement.class);
+ private static final TypeAdapter<JsonElement> elementAdapter = new Gson().getAdapter(JsonElement.class);
@Override
public void write(JsonWriter out, StandardCoderObject value) throws IOException {
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoderObject.java b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoderObject.java
index 55f7f9d7..5402f37b 100644
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoderObject.java
+++ b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardCoderObject.java
@@ -3,6 +3,7 @@
* ONAP
* ================================================================================
* Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +22,7 @@
package org.onap.policy.common.utils.coder;
import com.google.gson.JsonElement;
+import java.io.Serial;
import java.io.Serializable;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
@@ -33,6 +35,8 @@ import lombok.Getter;
*/
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class StandardCoderObject implements Serializable {
+
+ @Serial
private static final long serialVersionUID = 1L;
/**
@@ -56,9 +60,8 @@ public class StandardCoderObject implements Serializable {
* Gets a field's value from this object, traversing the object hierarchy.
*
* @param fields field hierarchy. These may be strings, identifying fields within the
- * object, or Integers, identifying an index within an array
- * @return the field value or {@code null} if the field does not exist or is not a
- * primitive
+ * object, or Integers, identifying an index within an array
+ * @return the field value or {@code null} if the field does not exist or is not a primitive
*/
public String getString(Object... fields) {
@@ -87,9 +90,8 @@ public class StandardCoderObject implements Serializable {
* Gets an item from an object.
*
* @param element object from which to extract the item
- * @param field name of the field from which to extract the item
- * @return the item, or {@code null} if the element is not an object or if the field
- * does not exist
+ * @param field name of the field from which to extract the item
+ * @return the item, or {@code null} if the element is not an object or if the field does not exist
*/
protected JsonElement getFieldFromObject(JsonElement element, String field) {
if (!element.isJsonObject()) {
@@ -103,9 +105,8 @@ public class StandardCoderObject implements Serializable {
* Gets an item from an array.
*
* @param element array from which to extract the item
- * @param index index of the item to extract
- * @return the item, or {@code null} if the element is not an array or if the index is
- * out of bounds
+ * @param index index of the item to extract
+ * @return the item, or {@code null} if the element is not an array or if the index is out of bounds
*/
protected JsonElement getItemFromArray(JsonElement element, int index) {
if (index < 0) {
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardValCoder.java b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardValCoder.java
deleted file mode 100644
index 4deeba14..00000000
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardValCoder.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*--
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.common.utils.coder;
-
-import com.worldturner.medeia.api.JsonSchemaVersion;
-import com.worldturner.medeia.api.SchemaSource;
-import com.worldturner.medeia.api.StringSchemaSource;
-import com.worldturner.medeia.api.ValidationFailedException;
-import com.worldturner.medeia.api.gson.MedeiaGsonApi;
-import com.worldturner.medeia.schema.validation.SchemaValidator;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import lombok.NonNull;
-import lombok.ToString;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Extension to the StandardCoder to support streaming validation against a Draft-07 Json schema specification.
- */
-
-@ToString
-public class StandardValCoder extends StandardCoder {
-
- // The medeia-validator library integrates better than
- // other libraries considered with GSON, and therefore
- // the StandardCoder.
-
- private static final Logger logger = LoggerFactory.getLogger(StandardValCoder.class);
-
- private final MedeiaGsonApi validatorApi = new MedeiaGsonApi();
- private final SchemaValidator validator;
-
- /**
- * StandardCoder with validation.
- */
- public StandardValCoder(@NonNull String jsonSchema, @NonNull String name) {
- SchemaSource schemaSource = new StringSchemaSource(jsonSchema, JsonSchemaVersion.DRAFT07, null, name);
- this.validator = validatorApi.loadSchema(schemaSource);
- }
-
- @Override
- protected String toPrettyJson(Object object) {
- /*
- * The validator strips off the "pretty" stuff (i.e., spaces), thus we have to validate and generate the pretty
- * JSON in separate steps.
- */
- gson.toJson(object, object.getClass(), validatorApi.createJsonWriter(validator, new StringWriter()));
-
- return super.toPrettyJson(object);
- }
-
- @Override
- protected String toJson(@NonNull Object object) {
- var output = new StringWriter();
- toJson(output, object);
- return output.toString();
- }
-
- @Override
- protected void toJson(@NonNull Writer target, @NonNull Object object) {
- gson.toJson(object, object.getClass(), validatorApi.createJsonWriter(validator, target));
- }
-
- @Override
- protected <T> T fromJson(@NonNull Reader source, @NonNull Class<T> clazz) {
- return convertFromDouble(clazz, gson.fromJson(validatorApi.createJsonReader(validator, source), clazz));
- }
-
- @Override
- protected <T> T fromJson(String json, Class<T> clazz) {
- var reader = new StringReader(json);
- return convertFromDouble(clazz, gson.fromJson(validatorApi.createJsonReader(validator, reader), clazz));
- }
-
- /**
- * Is the json conformant?.
- */
- public boolean isConformant(@NonNull String json) {
- try {
- conformance(json);
- } catch (CoderException e) {
- logger.info("JSON is not conformant to schema", e);
- return false;
- }
- return true;
- }
-
- /**
- * Check a json string for conformance against its schema definition.
- */
- public void conformance(@NonNull String json) throws CoderException {
- try {
- validatorApi.parseAll(validatorApi.createJsonReader(validator, new StringReader(json)));
- } catch (ValidationFailedException e) {
- throw new CoderException(e);
- }
- }
-}
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardYamlCoder.java b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardYamlCoder.java
index d94ddca4..8ee2e81d 100644
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/StandardYamlCoder.java
+++ b/utils/src/main/java/org/onap/policy/common/utils/coder/StandardYamlCoder.java
@@ -3,6 +3,7 @@
* ONAP
* ================================================================================
* Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +25,8 @@ import java.io.Reader;
import java.io.Writer;
/**
- * YAML encoder and decoder using the "standard" mechanism, which is currently gson. All
- * of the methods perform conversion to/from YAML (instead of JSON).
+ * YAML encoder and decoder using the "standard" mechanism, which is currently gson.
+ * All the methods perform conversion to/from YAML (instead of JSON).
*/
public class StandardYamlCoder extends StandardCoder {
private final YamlJsonTranslator translator;
diff --git a/utils/src/main/java/org/onap/policy/common/utils/coder/YamlJsonTranslator.java b/utils/src/main/java/org/onap/policy/common/utils/coder/YamlJsonTranslator.java
index 077246bf..ffd9d052 100644
--- a/utils/src/main/java/org/onap/policy/common/utils/coder/YamlJsonTranslator.java
+++ b/utils/src/main/java/org/onap/policy/common/utils/coder/YamlJsonTranslator.java
@@ -3,6 +3,7 @@
* ONAP
* ================================================================================
* Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -257,11 +258,11 @@ public class YamlJsonTranslator {
* @return a gson element corresponding to the node
*/
protected JsonElement makeJson(Node node) {
- if (node instanceof MappingNode) {
- return makeJsonObject((MappingNode) node);
+ if (node instanceof MappingNode mappingNode) {
+ return makeJsonObject(mappingNode);
- } else if (node instanceof SequenceNode) {
- return makeJsonArray((SequenceNode) node);
+ } else if (node instanceof SequenceNode sequenceNode) {
+ return makeJsonArray(sequenceNode);
} else {
return makeJsonPrim((ScalarNode) node);