From e97ddfe57becc2916a7b325e6dfc42fe4057affa Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 7 Nov 2014 21:14:17 +0100 Subject: [PATCH] Fix raw types in Neutron northbound Adds proper use of types and suppression magic to the factory method. Change-Id: Ie217c7cfbe6553b1ad511e69bff9d06f7da94d5e Signed-off-by: Robert Varga --- .../northbound/NeutronNetworkRequest.java | 7 ++-- .../northbound/NeutronPortRequest.java | 7 ++-- .../northbound/NeutronSubnetRequest.java | 8 ++--- .../northbound/PaginatedRequestFactory.java | 34 ++++++++++++------- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java index a4c113c2c1..2001fb758a 100644 --- a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java +++ b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java @@ -9,17 +9,15 @@ package org.opendaylight.controller.networkconfig.neutron.northbound; import java.util.List; - 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.networkconfig.neutron.NeutronNetwork; @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) -public class NeutronNetworkRequest implements INeutronRequest { +public class NeutronNetworkRequest implements INeutronRequest { // See OpenStack Network API v2.0 Reference for description of // annotated attributes @@ -50,14 +48,17 @@ public class NeutronNetworkRequest implements INeutronRequest { singletonNetwork = net; } + @Override public NeutronNetwork getSingleton() { return singletonNetwork; } + @Override public boolean isSingleton() { return (singletonNetwork != null); } + @Override public List getBulk() { return bulkRequest; } diff --git a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java index 12b58aa2ab..3bfac8a4fd 100644 --- a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java +++ b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java @@ -9,17 +9,15 @@ package org.opendaylight.controller.networkconfig.neutron.northbound; import java.util.List; - 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.networkconfig.neutron.NeutronPort; @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) -public class NeutronPortRequest implements INeutronRequest { +public class NeutronPortRequest implements INeutronRequest { // See OpenStack Network API v2.0 Reference for description of // annotated attributes @@ -50,14 +48,17 @@ public class NeutronPortRequest implements INeutronRequest { singletonPort = port; } + @Override public NeutronPort getSingleton() { return singletonPort; } + @Override public boolean isSingleton() { return (singletonPort != null); } + @Override public List getBulk() { return bulkRequest; } diff --git a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java index 57a724c1cc..4c230c525b 100644 --- a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java +++ b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java @@ -9,18 +9,15 @@ package org.opendaylight.controller.networkconfig.neutron.northbound; import java.util.List; - 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.networkconfig.neutron.NeutronSubnet; @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) - -public class NeutronSubnetRequest implements INeutronRequest { +public class NeutronSubnetRequest implements INeutronRequest { // See OpenStack Network API v2.0 Reference for description of // annotated attributes @@ -54,14 +51,17 @@ public class NeutronSubnetRequest implements INeutronRequest { links = null; } + @Override public NeutronSubnet getSingleton() { return singletonSubnet; } + @Override public List getBulk() { return bulkRequest; } + @Override public boolean isSingleton() { return (singletonSubnet != null); } diff --git a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java index 8f05e76e18..5f9653f902 100644 --- a/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java +++ b/opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java @@ -10,6 +10,11 @@ package org.opendaylight.controller.networkconfig.neutron.northbound; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import javax.ws.rs.core.UriInfo; import org.opendaylight.controller.networkconfig.neutron.INeutronObject; import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork; import org.opendaylight.controller.networkconfig.neutron.NeutronPort; @@ -17,12 +22,6 @@ import org.opendaylight.controller.networkconfig.neutron.NeutronSubnet; import org.opendaylight.controller.northbound.commons.exception.BadRequestException; import org.opendaylight.controller.northbound.commons.exception.ResourceNotFoundException; -import javax.ws.rs.core.UriInfo; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - public class PaginatedRequestFactory { public static class PaginationResults { @@ -35,26 +34,33 @@ public class PaginatedRequestFactory { } } - public static INeutronRequest createRequest(Integer limit, String marker, + /* + * SuppressWarnings is needed because the compiler does not understand that we + * are actually safe here. + * + * FIXME: the only caller performs a cast back, so this is not actually necessary. + */ + @SuppressWarnings("unchecked") + public static INeutronRequest createRequest(Integer limit, String marker, Boolean pageReverse, UriInfo uriInfo, List collection, Class clazz) { - PaginationResults results = _paginate(limit, marker, pageReverse, uriInfo, collection); + PaginationResults results = _paginate(limit, marker, pageReverse, uriInfo, collection); if (clazz.equals(NeutronNetwork.class)){ - return new NeutronNetworkRequest(results.collection, results.links); + return (INeutronRequest) new NeutronNetworkRequest((List) results.collection, results.links); } if (clazz.equals(NeutronSubnet.class)){ - return new NeutronSubnetRequest(results.collection, results.links); + return (INeutronRequest) new NeutronSubnetRequest((List) results.collection, results.links); } if (clazz.equals(NeutronPort.class)){ - return new NeutronPortRequest(results.collection, results.links); + return (INeutronRequest) new NeutronPortRequest((List) results.collection, results.links); } return null; } - private static PaginationResults _paginate(Integer limit, String marker, Boolean pageReverse, UriInfo uriInfo, List collection) { + private static PaginationResults _paginate(Integer limit, String marker, Boolean pageReverse, UriInfo uriInfo, List collection) { List links = new ArrayList<>(); Integer startPos = null; String startMarker; @@ -80,10 +86,12 @@ public class PaginatedRequestFactory { class MarkerObject implements INeutronObject { private String id; + @Override public String getID() { return id; } + @Override public void setID(String id) { this.id = id; } @@ -149,6 +157,6 @@ public class PaginatedRequestFactory { links.add(previous); } - return new PaginationResults(collection, links); + return new PaginationResults(collection, links); } } -- 2.36.6