summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java')
-rw-r--r--framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java112
1 files changed, 0 insertions, 112 deletions
diff --git a/framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java b/framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java
deleted file mode 100644
index 8613a964..00000000
--- a/framework/src/onos/core/common/src/main/java/org/onosproject/codec/impl/IntentCodec.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2014-2015 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.impl;
-
-import org.onosproject.codec.CodecContext;
-import org.onosproject.codec.JsonCodec;
-import org.onosproject.core.CoreService;
-import org.onosproject.net.NetworkResource;
-import org.onosproject.net.intent.HostToHostIntent;
-import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentService;
-import org.onosproject.net.intent.IntentState;
-import org.onosproject.net.intent.PointToPointIntent;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.net.UrlEscapers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onlab.util.Tools.nullIsIllegal;
-
-/**
- * Intent JSON codec.
- */
-public final class IntentCodec extends JsonCodec<Intent> {
-
- protected static final String TYPE = "type";
- protected static final String ID = "id";
- protected static final String APP_ID = "appId";
- protected static final String STATE = "state";
- protected static final String PRIORITY = "priority";
- protected static final String RESOURCES = "resources";
- protected static final String MISSING_MEMBER_MESSAGE =
- " member is required in Intent";
-
- @Override
- public ObjectNode encode(Intent intent, CodecContext context) {
- checkNotNull(intent, "Intent cannot be null");
-
- final ObjectNode result = context.mapper().createObjectNode()
- .put(TYPE, intent.getClass().getSimpleName())
- .put(ID, intent.id().toString())
- .put(APP_ID, UrlEscapers.urlPathSegmentEscaper()
- .escape(intent.appId().name()));
-
- final ArrayNode jsonResources = result.putArray(RESOURCES);
-
- for (final NetworkResource resource : intent.resources()) {
- jsonResources.add(resource.toString());
- }
-
- IntentService service = context.getService(IntentService.class);
- IntentState state = service.getIntentState(intent.key());
- if (state != null) {
- result.put(STATE, state.toString());
- }
-
- return result;
- }
-
- @Override
- public Intent decode(ObjectNode json, CodecContext context) {
- checkNotNull(json, "JSON cannot be null");
-
- String type = nullIsIllegal(json.get(TYPE),
- TYPE + MISSING_MEMBER_MESSAGE).asText();
-
- if (type.equals(PointToPointIntent.class.getSimpleName())) {
- return context.codec(PointToPointIntent.class).decode(json, context);
- } else if (type.equals(HostToHostIntent.class.getSimpleName())) {
- return context.codec(HostToHostIntent.class).decode(json, context);
- }
-
- throw new IllegalArgumentException("Intent type "
- + type + " is not supported");
- }
-
- /**
- * Extracts base intent specific attributes from a JSON object
- * and adds them to a builder.
- *
- * @param json root JSON object
- * @param context code context
- * @param builder builder to use for storing the attributes
- */
- public static void intentAttributes(ObjectNode json, CodecContext context,
- Intent.Builder builder) {
- String appId = nullIsIllegal(json.get(IntentCodec.APP_ID),
- IntentCodec.APP_ID + IntentCodec.MISSING_MEMBER_MESSAGE).asText();
- CoreService service = context.getService(CoreService.class);
- builder.appId(service.getAppId(appId));
-
- JsonNode priorityJson = json.get(IntentCodec.PRIORITY);
- if (priorityJson != null) {
- builder.priority(priorityJson.asInt());
- }
- }
-}