By this change, about 120 lines are reduced.
Change-Id: Id4838b4e5109d92f01e18e611e869c27b56371e9
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
package org.opendaylight.neutron.northbound.api;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.ParameterizedType;
import java.net.HttpURLConnection;
import java.util.List;
import javax.ws.rs.core.Response;
protected abstract String getResourceName();
- protected abstract NeutronRequest newNeutronRequest(T o);
+ private NeutronRequest newNeutronRequest(T o) {
+ // return new NeutronRequest(o);
+
+ ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass();
+ // argumentClass = T.class
+ Class<T> argumentClass = (Class) parameterizedType.getActualTypeArguments()[0];
+ // cls = NeturonRequest.class
+ Class<NeutronRequest> cls = (Class) parameterizedType.getActualTypeArguments()[1];
+ try {
+ // ctor = NeutronRequest constructor
+ Constructor<NeutronRequest> ctor = cls.getDeclaredConstructor(argumentClass);
+ return ctor.newInstance(o);
+ } catch (NoSuchMethodException | InstantiationException
+ | IllegalAccessException | InvocationTargetException e) {
+ // This case shouldn't happen
+ throw new RuntimeException(e);
+ }
+ }
protected abstract I getNeutronCRUD();
return RESOURCE_NAME;
}
- @Override
- protected NeutronBgpvpnRequest newNeutronRequest(NeutronBgpvpn o) {
- return new NeutronBgpvpnRequest(o);
- }
-
@Override
protected INeutronBgpvpnCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronBgpvpnCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronFirewallRequest newNeutronRequest(NeutronFirewall o) {
- return new NeutronFirewallRequest(o);
- }
-
@Override
protected INeutronFirewallCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronFirewallCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronFirewallPolicyRequest newNeutronRequest(NeutronFirewallPolicy o) {
- return new NeutronFirewallPolicyRequest(o);
- }
-
@Override
protected INeutronFirewallPolicyCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronFirewallPolicyCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronFirewallRuleRequest newNeutronRequest(NeutronFirewallRule o) {
- return new NeutronFirewallRuleRequest(o);
- }
-
@Override
protected INeutronFirewallRuleCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronFirewallRuleCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronFloatingIPRequest newNeutronRequest(NeutronFloatingIP o) {
- return new NeutronFloatingIPRequest(o);
- }
-
private NeutronCRUDInterfaces getNeutronInterfaces(boolean flag) {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronFloatingIPCRUD(this);
if (answer.getFloatingIPInterface() == null) {
return RESOURCE_NAME;
}
- @Override
- protected NeutronL2gatewayConnectionRequest newNeutronRequest(NeutronL2gatewayConnection o) {
- return new NeutronL2gatewayConnectionRequest(o);
- }
-
@Override
protected INeutronL2gatewayConnectionCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronL2gatewayConnectionCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronL2gatewayRequest newNeutronRequest(NeutronL2gateway o) {
- return new NeutronL2gatewayRequest(o);
- }
-
@Override
protected INeutronL2gatewayCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronL2gatewayCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronLoadBalancerHealthMonitorRequest newNeutronRequest(NeutronLoadBalancerHealthMonitor o) {
- return new NeutronLoadBalancerHealthMonitorRequest(o);
- }
-
@Override
protected INeutronLoadBalancerHealthMonitorCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronLoadBalancerHealthMonitorCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronLoadBalancerListenerRequest newNeutronRequest(NeutronLoadBalancerListener o) {
- return new NeutronLoadBalancerListenerRequest(o);
- }
-
@Override
protected INeutronLoadBalancerListenerCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronLoadBalancerListenerCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronLoadBalancerRequest newNeutronRequest(NeutronLoadBalancer o) {
- return new NeutronLoadBalancerRequest(o);
- }
-
@Override
protected INeutronLoadBalancerCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronLoadBalancerCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronLoadBalancerPoolRequest newNeutronRequest(NeutronLoadBalancerPool o) {
- return new NeutronLoadBalancerPoolRequest(o);
- }
-
@Override
protected INeutronLoadBalancerPoolCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronLoadBalancerPoolCRUD(this);
return answer.getMeteringLabelRuleInterface();
}
- @Override
- protected NeutronMeteringLabelRuleRequest newNeutronRequest(NeutronMeteringLabelRule o) {
- return new NeutronMeteringLabelRuleRequest(o);
- }
-
@Context
UriInfo uriInfo;
return answer.getMeteringLabelInterface();
}
- @Override
- protected NeutronMeteringLabelRequest newNeutronRequest(NeutronMeteringLabel o) {
- return new NeutronMeteringLabelRequest(o);
- }
-
@Context
UriInfo uriInfo;
return RESOURCE_NAME;
}
- @Override
- protected NeutronNetworkRequest newNeutronRequest(NeutronNetwork o) {
- return new NeutronNetworkRequest(o);
- }
-
@Override
protected INeutronNetworkCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronNetworkCRUD(this);
return getNeutronInterfaces(false, false).getPortInterface();
}
- @Override
- protected NeutronPortRequest newNeutronRequest(NeutronPort o) {
- return new NeutronPortRequest(o);
- }
-
@Context
UriInfo uriInfo;
return RESOURCE_NAME;
}
- @Override
- protected NeutronQosPolicyRequest newNeutronRequest(NeutronQosPolicy o) {
- return new NeutronQosPolicyRequest(o);
- }
-
@Override
protected INeutronQosPolicyCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronQosPolicyCRUD(this);
return getNeutronInterfaces(false).getRouterInterface();
}
- @Override
- protected NeutronRouterRequest newNeutronRequest(NeutronRouter o) {
- return new NeutronRouterRequest(o);
- }
-
/**
* Returns a list of all Routers */
return RESOURCE_NAME;
}
- @Override
- protected NeutronSFCFlowClassifierRequest newNeutronRequest(NeutronSFCFlowClassifier o) {
- return new NeutronSFCFlowClassifierRequest(o);
- }
-
@Override
protected INeutronSFCFlowClassifierCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSFCFlowClassifierCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronSFCPortChainRequest newNeutronRequest(NeutronSFCPortChain o) {
- return new NeutronSFCPortChainRequest(o);
- }
-
@Override
protected INeutronSFCPortChainCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSFCPortChainCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronSFCPortPairGroupRequest newNeutronRequest(NeutronSFCPortPairGroup o) {
- return new NeutronSFCPortPairGroupRequest(o);
- }
-
@Override
protected INeutronSFCPortPairGroupCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSFCPortPairGroupCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronSFCPortPairRequest newNeutronRequest(NeutronSFCPortPair o) {
- return new NeutronSFCPortPairRequest(o);
- }
-
@Override
protected INeutronSFCPortPairCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSFCPortPairCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronSecurityGroupRequest newNeutronRequest(NeutronSecurityGroup o) {
- return new NeutronSecurityGroupRequest(o);
- }
-
@Override
protected INeutronSecurityGroupCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSecurityGroupCRUD(this);
return RESOURCE_NAME;
}
- @Override
- protected NeutronSecurityRuleRequest newNeutronRequest(NeutronSecurityRule o) {
- return new NeutronSecurityRuleRequest(o);
- }
-
@Override
protected INeutronSecurityRuleCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronSecurityRuleCRUD(this);
return getNeutronInterfaces(false).getSubnetInterface();
}
- @Override
- protected NeutronSubnetRequest newNeutronRequest(NeutronSubnet o) {
- return new NeutronSubnetRequest(o);
- }
-
@Context
UriInfo uriInfo;
return answer.getVPNIKEPolicyInterface();
}
- @Override
- protected NeutronVPNIKEPolicyRequest newNeutronRequest(NeutronVPNIKEPolicy o) {
- return new NeutronVPNIKEPolicyRequest(o);
- }
-
@Context
UriInfo uriInfo;
return answer.getVPNIPSECPolicyInterface();
}
- @Override
- protected NeutronVPNIPSECPolicyRequest newNeutronRequest(NeutronVPNIPSECPolicy o) {
- return new NeutronVPNIPSECPolicyRequest(o);
- }
-
@Context
UriInfo uriInfo;
return RESOURCE_NAME;
}
- @Override
- protected NeutronVPNIPSECSiteConnectionRequest newNeutronRequest(NeutronVPNIPSECSiteConnection o) {
- return new NeutronVPNIPSECSiteConnectionRequest(o);
- }
-
@Override
protected INeutronVPNIPSECSiteConnectionsCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronVPNIPSECSiteConnectionsCRUD(this);
@Context
UriInfo uriInfo;
- @Override
- protected NeutronVPNServiceRequest newNeutronRequest(NeutronVPNService o) {
- return new NeutronVPNServiceRequest(o);
- }
-
@Override
protected INeutronVPNServiceCRUD getNeutronCRUD() {
NeutronCRUDInterfaces answer = new NeutronCRUDInterfaces().fetchINeutronVPNServiceCRUD(this);