+/*
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.hosttracker.northbound;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.opendaylight.controller.hosttracker.hostAware.HostNodeConnector;
+import org.opendaylight.controller.sal.core.Node;
+import org.opendaylight.controller.sal.core.NodeConnector;
+import org.opendaylight.controller.sal.packet.address.DataLinkAddress;
+import org.opendaylight.controller.sal.packet.address.EthernetAddress;
+
+/**
+ * Configuration Java Object which represents a Host configuration information
+ * for HostTracker.
+ */
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.NONE)
+public class HostConfig implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @XmlElement
+ public String dataLayerAddress;
+ @XmlElement
+ private String nodeType;
+ @XmlElement
+ private String nodeId;
+ @XmlElement
+ private String nodeConnectorType;
+ @XmlElement
+ private String nodeConnectorId;
+ @XmlElement
+ private String vlan;
+ @XmlElement
+ private boolean staticHost;
+ @XmlElement
+ private String networkAddress;
+
+ public HostConfig() {
+
+ }
+
+ protected String getDataLayerAddress() {
+ return this.dataLayerAddress;
+ }
+
+ protected String getNodeType() {
+ return this.nodeType;
+ }
+
+ protected String getNodeId() {
+ return this.nodeId;
+ }
+
+ protected String getNodeConnectorType() {
+ return this.nodeConnectorType;
+ }
+
+ protected String getNodeConnectorId() {
+ return this.nodeConnectorId;
+ }
+
+ protected String getVlan() {
+ return this.vlan;
+ }
+
+ protected boolean isStaticHost() {
+ return staticHost;
+ }
+
+ protected String getNetworkAddress() {
+ return networkAddress;
+ }
+
+ public static HostConfig convert(HostNodeConnector hnc) {
+ if(hnc == null) {
+ return null;
+ }
+ HostConfig hc = new HostConfig();
+ DataLinkAddress dl = hnc.getDataLayerAddress();
+ if(dl instanceof EthernetAddress) {
+ EthernetAddress et = (EthernetAddress) dl;
+ hc.dataLayerAddress = et.getMacAddress();
+ } else {
+ hc.dataLayerAddress = dl.getName();
+ }
+ NodeConnector nc = hnc.getnodeConnector();
+ if(nc != null) {
+ hc.nodeConnectorType = nc.getType();
+ hc.nodeConnectorId = nc.getNodeConnectorIDString();
+ Node n = hnc.getnodeconnectorNode();
+ if(n != null) {
+ hc.nodeType = n.getType();
+ hc.nodeId = n.getNodeIDString();
+ }
+ }
+ hc.vlan = String.valueOf(hnc.getVlan());
+ hc.staticHost = hnc.isStaticHost();
+ hc.networkAddress = hnc.getNetworkAddressAsString();
+ return hc;
+ }
+}