summaryrefslogtreecommitdiffstats
path: root/actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java
diff options
context:
space:
mode:
authorruilin cai <ruilin.cai@huawei.com>2023-05-15 14:51:41 -0400
committerRuilin Cai <ruilin.cai@huawei.com>2023-06-16 20:49:53 +0000
commit4f9578356868d3b2d49cbef105fefdf7be74fd1f (patch)
treeae6ef369b059c60086e03e215579aa4a271c3501 /actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java
parent276dede19944314ccfff76d55edd070115321c10 (diff)
[actn-interface-tools] Add restconf module. Create empty shell for global-control and yang-utils modules. Add copyrights and delete unessessary comments and unneeded resource files.
restconf module: This module is to send restful request to SDN by using restconf. It acts as a client to send restful requests to the SDN server. global-control module: This module controls the lifecycle and initiation of objects in other modules. yang-utils module: This module response for transferring between yang pojo and json. Also in this commit delete unneeded resource files, add copyrights to the maven pom files and delete some unnessessary comments. Change-Id: Idfc04649285bd6c5b67b1cc6c2115bf4bb267660 Signed-off-by: ruilin cai <ruilin.cai@huawei.com> Issue-ID: INT-2213 Signed-off-by: ruilin cai <ruilin.cai@huawei.com>
Diffstat (limited to 'actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java')
-rw-r--r--actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java127
1 files changed, 127 insertions, 0 deletions
diff --git a/actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java b/actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java
new file mode 100644
index 0000000..4bb8b66
--- /dev/null
+++ b/actn-interface-tools/restconf-client/api/src/main/java/org/onap/integration/actninterfacetools/protocol/restconf/DefaultPncInstance.java
@@ -0,0 +1,127 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Actn Interface Tools
+ * ================================================================================
+ * Copyright (C) 2023 Huawei Canada Limited.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.integration.actninterfacetools.protocol.restconf;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
+import org.apache.commons.lang3.StringUtils;
+import java.net.InetAddress;
+import java.util.Objects;
+import java.util.UUID;
+
+/**
+ * Default implementation for Rest devices.
+ */
+public class DefaultPncInstance implements PncInstance {
+ private static final String REST = "rest";
+ private static final String COLON = ":";
+
+ private final UUID pncId;
+ private final InetAddress ip;
+ private final int port;
+ private final String username;
+ private final String password;
+ private String protocol;
+ private String url;
+
+ public DefaultPncInstance(InetAddress ip, int port, String name, String password,
+ String protocol, String url) {
+ this.pncId = UUID.randomUUID();
+ Preconditions.checkNotNull(ip, "IP address cannot be null");
+ Preconditions.checkArgument(port > 0, "Port address cannot be negative");
+ Preconditions.checkNotNull(protocol, "protocol address cannot be null");
+ this.ip = ip;
+ this.port = port;
+ this.username = name;
+ this.password = StringUtils.isEmpty(password) ? null : password;
+ this.protocol = protocol;
+ this.url = StringUtils.isEmpty(url) ? null : url;
+ }
+
+ @Override
+ public InetAddress ip() {
+ return this.ip;
+ }
+
+ @Override
+ public int port() {
+ return this.port;
+ }
+
+ @Override
+ public String username() {
+ return this.username;
+ }
+
+ @Override
+ public String password() {
+ return this.password;
+ }
+
+ @Override
+ public UUID pncId() {
+ return this.pncId;
+ }
+
+ @Override
+ public String protocol() {
+ return protocol;
+ }
+
+ @Override
+ public String url() {
+ return url;
+ }
+
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .omitNullValues()
+ .add("url", url)
+ .add("protocol", protocol)
+ .add("username", username)
+ .add("port", port)
+ .add("ip", ip)
+ .toString();
+
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof PncInstance)) {
+ return false;
+ }
+ PncInstance pncInstance = (PncInstance) obj;
+ return this.username.equals(pncInstance.username()) && this.ip.equals(pncInstance.ip()) &&
+ this.port == pncInstance.port();
+
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(ip, port);
+ }
+
+}