package org.opennaas.core.resources.descriptor.network; /* * #%L * OpenNaaS :: Core :: Resources * %% * Copyright (C) 2007 - 2014 FundaciĆ³ Privada i2CAT, Internet i InnovaciĆ³ a Catalunya * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Lesser Public License for more details. * * You should have received a copy of the GNU General Lesser Public * License along with this program. If not, see * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @Entity @XmlRootElement(name = "RDF", namespace = "http://www.w3.org/1999/02/22-rdf-syntax-ns#") public class NetworkTopology { @Id @GeneratedValue private long id; @Basic private String location; @OneToMany(cascade = CascadeType.ALL) private List<NetworkDomain> networkDomains; @OneToMany(cascade = CascadeType.ALL) private List<Device> devices; @OneToMany(cascade = CascadeType.ALL) private List<Layer> layers; @OneToMany(cascade = CascadeType.ALL) private List<Interface> interfaces; public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } @XmlElement(name = "NetworkDomain", namespace = "http://www.science.uva.nl/research/sne/ndl/domain#") public List<NetworkDomain> getNetworkDomains() { return networkDomains; } public void setNetworkDomains(List<NetworkDomain> networkDomains) { this.networkDomains = networkDomains; } @XmlElement(name = "Device", namespace = "http://www.science.uva.nl/research/sne/ndl#") public List<Device> getDevices() { return devices; } @XmlElement(name = "Layer", namespace = "http://www.science.uva.nl/research/sne/ndl#") public List<Layer> getLayers() { return layers; } public void setLayers(List<Layer> layers) { this.layers = layers; } public void setDevices(List<Device> devices) { this.devices = devices; } @XmlElement(name = "Interface", namespace = "http://www.science.uva.nl/research/sne/ndl#") public List<Interface> getInterfaces() { return interfaces; } public void setInterfaces(List<Interface> interfaces) { this.interfaces = interfaces; } @Override public String toString() { return "RDF [Location=" + location + ", NetworkDomain=" + networkDomains + ", devices=" + devices + ", interfaces=" + interfaces + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((devices == null) ? 0 : devices.hashCode()); result = prime * result + ((interfaces == null) ? 0 : interfaces.hashCode()); result = prime * result + ((location == null) ? 0 : location.hashCode()); result = prime * result + ((networkDomains == null) ? 0 : networkDomains.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; NetworkTopology other = (NetworkTopology) obj; if (devices == null) { if (other.devices != null) return false; } else if (!devices.equals(other.devices)) return false; if (interfaces == null) { if (other.interfaces != null) return false; } else if (!interfaces.equals(other.interfaces)) return false; if (location == null) { if (other.location != null) return false; } else if (!location.equals(other.location)) return false; if (networkDomains == null) { if (other.networkDomains != null) return false; } else if (!networkDomains.equals(other.networkDomains)) return false; return true; } }