diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/codec')
4 files changed, 0 insertions, 242 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecContext.java b/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecContext.java deleted file mode 100644 index 272c3e90..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecContext.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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. - */ -package org.onosproject.codec; - -import com.fasterxml.jackson.databind.ObjectMapper; - -/** - * Context for codecs to use while encoding/decoding. - */ -public interface CodecContext { - - /** - * Returns the JSON object mapper. - * - * @return object mapper - */ - ObjectMapper mapper(); - - /** - * Returns the JSON codec for the specified entity class. - * - * @param entityClass entity class - * @param <T> entity type - * @return JSON codec; null if no codec available for the class - */ - <T> JsonCodec<T> codec(Class<T> entityClass); - - /** - * Returns reference to the specified service implementation. - * - * @param serviceClass service class - * @param <T> service type - * @return JSON codec; null if no codec available for the class - */ - <T> T getService(Class<T> serviceClass); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecService.java b/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecService.java deleted file mode 100644 index 2705569d..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/CodecService.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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. - */ -package org.onosproject.codec; - -import java.util.Set; - -/** - * Service for registering and retrieving JSON codecs for various entities. - */ -public interface CodecService { - - /** - * Returns the set of classes with currently registered codecs. - * - * @return set of entity classes - */ - Set<Class<?>> getCodecs(); - - /** - * Returns the JSON codec for the specified entity class. - * - * @param entityClass entity class - * @param <T> entity type - * @return JSON codec; null if no codec available for the class - */ - <T> JsonCodec<T> getCodec(Class<T> entityClass); - - /** - * Registers the specified JSON codec for the given entity class. - * - * @param entityClass entity class - * @param codec JSON codec - * @param <T> entity type - */ - <T> void registerCodec(Class<T> entityClass, JsonCodec<T> codec); - - /** - * Unregisters the JSON codec for the specified entity class. - * - * @param entityClass entity class - */ - void unregisterCodec(Class<?> entityClass); - -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/JsonCodec.java b/framework/src/onos/core/api/src/main/java/org/onosproject/codec/JsonCodec.java deleted file mode 100644 index 6df8f117..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/JsonCodec.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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. - */ -package org.onosproject.codec; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -import java.util.ArrayList; -import java.util.List; - -/** - * Abstraction of a codec capable for encoding/decoding arbitrary objects to/from JSON. - */ -public abstract class JsonCodec<T> { - - /** - * Encodes the specified entity into JSON. - * - * @param entity entity to encode - * @param context encoding context - * @return JSON node - * @throws java.lang.UnsupportedOperationException if the codec does not - * support encode operations - */ - public ObjectNode encode(T entity, CodecContext context) { - throw new UnsupportedOperationException("encode() not supported"); - } - - /** - * Decodes the specified entity from JSON. - * - * @param json JSON to decode - * @param context decoding context - * @return decoded entity - * @throws java.lang.UnsupportedOperationException if the codec does not - * support decode operations - */ - public T decode(ObjectNode json, CodecContext context) { - throw new UnsupportedOperationException("decode() not supported"); - } - - /** - * Encodes the collection of the specified entities. - * - * @param entities collection of entities to encode - * @param context encoding context - * @return JSON array - * @throws java.lang.UnsupportedOperationException if the codec does not - * support encode operations - */ - public ArrayNode encode(Iterable<T> entities, CodecContext context) { - ArrayNode result = context.mapper().createArrayNode(); - for (T entity : entities) { - result.add(encode(entity, context)); - } - return result; - } - - /** - * Decodes the specified JSON array into a collection of entities. - * - * @param json JSON array to decode - * @param context decoding context - * @return collection of decoded entities - * @throws java.lang.UnsupportedOperationException if the codec does not - * support decode operations - */ - public List<T> decode(ArrayNode json, CodecContext context) { - List<T> result = new ArrayList<>(); - for (JsonNode node : json) { - result.add(decode((ObjectNode) node, context)); - } - return result; - } - - /** - * Gets a child Object Node from a parent by name. If the child is not found - * or does nor represent an object, null is returned. - * - * @param parent parent object - * @param childName name of child to query - * @return child object if found, null if not found or if not an object - */ - protected static ObjectNode get(ObjectNode parent, String childName) { - JsonNode node = parent.path(childName); - return node.isObject() && !node.isNull() ? (ObjectNode) node : null; - } - - /** - * Gets a child Object Node from a parent by index. If the child is not found - * or does nor represent an object, null is returned. - * - * @param parent parent object - * @param childIndex index of child to query - * @return child object if found, null if not found or if not an object - */ - protected static ObjectNode get(JsonNode parent, int childIndex) { - JsonNode node = parent.path(childIndex); - return node.isObject() && !node.isNull() ? (ObjectNode) node : null; - } -} diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/package-info.java b/framework/src/onos/core/api/src/main/java/org/onosproject/codec/package-info.java deleted file mode 100644 index 0aa063f5..00000000 --- a/framework/src/onos/core/api/src/main/java/org/onosproject/codec/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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. - */ - -/** - * Base JSON codec abstraction and a service for tracking various JSON codecs. - */ -package org.onosproject.codec; |