diff options
Diffstat (limited to 'framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java')
-rw-r--r-- | framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java b/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java deleted file mode 100644 index 86dbb2e6..00000000 --- a/framework/src/onos/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright 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.ovsdb.rfc.schema.type; - -import java.util.Set; - -import org.onosproject.ovsdb.rfc.exception.AbnormalJsonNodeException; -import org.onosproject.ovsdb.rfc.schema.type.UuidBaseType.RefType; -import org.onosproject.ovsdb.rfc.utils.ObjectMapperUtil; - -import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.collect.Sets; - -/** - * BaseType Factory class. - */ -public final class BaseTypeFactory { - - /** - * Constructs a BaseTypeFactory object. This class should not be - * instantiated. - */ - private BaseTypeFactory() { - } - - /** - * Create a BaseType from the JsonNode. - * @param baseTypeJson the BaseType JsonNode - * @param keyorval the key node or value node - * @return BaseType - */ - public static BaseType getBaseTypeFromJson(JsonNode baseTypeJson, String keyorval) { - if (baseTypeJson.isValueNode()) { - String type = baseTypeJson.asText().trim(); - return fromTypeStr(type); - } else { - if (!baseTypeJson.has(keyorval)) { - String message = "Abnormal BaseType JsonNode, it should contain 'key' or 'value' node but was not found" - + ObjectMapperUtil.convertToString(baseTypeJson); - throw new AbnormalJsonNodeException(message); - } - return fromJsonNode(baseTypeJson.get(keyorval)); - } - } - - /** - * Get BaseType by the type value of JsonNode. - * @param type the type value of JsonNode - * @return BaseType - */ - private static BaseType fromTypeStr(String type) { - switch (type) { - case "boolean": - return new BooleanBaseType(); - case "integer": - return new IntegerBaseType(); - case "real": - return new RealBaseType(); - case "string": - return new StringBaseType(); - case "uuid": - return new UuidBaseType(); - default: - return null; - } - } - - /** - * json like "string" or json like {"type" : "string", "enum": ["set", - * ["access", "native-tagged"]]}" for key or value. - * @param type JsonNode - */ - private static BaseType fromJsonNode(JsonNode type) { - if (type.isTextual()) { - return fromTypeStr(type.asText()); - } else if (type.isObject() && type.has("type")) { - String typeStr = type.get("type").asText(); - switch (typeStr) { - case "boolean": - return new BooleanBaseType(); - case "integer": - return getIntegerBaseType(type); - case "real": - return getRealBaseType(type); - case "string": - return getStringBaseType(type); - case "uuid": - return getUuidBaseType(type); - default: - return null; - } - } - return null; - } - - /** - * Get IntegerBaseType by the type value of JsonNode which contains the - * constraints. - * @param type the type value of JsonNode - * @return IntegerBaseType - */ - private static IntegerBaseType getIntegerBaseType(JsonNode type) { - int min = Integer.MIN_VALUE; - int max = Integer.MAX_VALUE; - Set<Integer> enums = Sets.newHashSet(); - JsonNode node = type.get("minInteger"); - if (node != null) { - min = node.asInt(); - } - node = type.get("maxInteger"); - if (node != null) { - max = node.asInt(); - } - if (type.has("enum")) { - JsonNode anEnum = type.get("enum").get(1); - for (JsonNode n : anEnum) { - enums.add(n.asInt()); - } - } - return new IntegerBaseType(min, max, enums); - } - - /** - * Get RealBaseType by the type value of JsonNode which contains the - * constraints. - * @param type the type value of JsonNode - * @return RealBaseType - */ - private static RealBaseType getRealBaseType(JsonNode type) { - double min = Double.MIN_VALUE; - double max = Double.MAX_VALUE; - Set<Double> enums = Sets.newHashSet(); - JsonNode node = type.get("minReal"); - if (node != null) { - min = node.asDouble(); - } - node = type.get("maxReal"); - if (node != null) { - max = node.asDouble(); - } - if (type.has("enum")) { - JsonNode anEnum = type.get("enum").get(1); - for (JsonNode n : anEnum) { - enums.add(n.asDouble()); - } - } - return new RealBaseType(min, max, enums); - } - - /** - * Get StringBaseType by the type value of JsonNode which contains the - * constraints. - * @param type the type value of JsonNode - * @return StringBaseType - */ - private static StringBaseType getStringBaseType(JsonNode type) { - int minLength = Integer.MIN_VALUE; - int maxLength = Integer.MAX_VALUE; - Set<String> enums = Sets.newHashSet(); - JsonNode node = type.get("minLength"); - if (node != null) { - minLength = node.asInt(); - } - node = type.get("maxLength"); - if (node != null) { - maxLength = node.asInt(); - } - if (type.has("enum")) { - JsonNode enumVal = type.get("enum"); - if (enumVal.isArray()) { - JsonNode anEnum = enumVal.get(1); - for (JsonNode n : anEnum) { - enums.add(n.asText()); - } - } else if (enumVal.isTextual()) { - enums.add(enumVal.asText()); - } - } - return new StringBaseType(minLength, maxLength, enums); - } - - /** - * Get UuidBaseType by the type value of JsonNode which contains the - * constraints. - * @param type the type value of JsonNode - * @return UuidBaseType - */ - private static UuidBaseType getUuidBaseType(JsonNode type) { - String refTable = null; - String refType = RefType.STRONG.refType(); - JsonNode node = type.get("refTable"); - if (node != null) { - refTable = node.asText(); - } - node = type.get("refType"); - if (node != null) { - refType = node.asText(); - } - return new UuidBaseType(refTable, refType); - } -} |