package org.onap.sdnc.northbound.util;
-import com.google.common.base.Optional;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import java.util.concurrent.Future;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.BrgTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.BrgTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ConnectionAttachmentTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ConnectionAttachmentTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ContrailRouteTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ContrailRouteTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.NetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadNetworkTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadNetworkTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadVfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PreloadVfModuleTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GetpathsegmentTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GetpathsegmentTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PolicyUpdateNotifyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PolicyUpdateNotifyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PortMirrorTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PortMirrorTopologyOperationOutputBuilder;
+
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.SecurityZoneTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.SecurityZoneTopologyOperationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.ServiceTopologyOperationOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.Services;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.TunnelxconnTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.TunnelxconnTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VfModuleTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VfModuleTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.VnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.PnfTopologyOperationOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.brg.response.information.BrgResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.connection.attachment.response.information.ConnectionAttachmentResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.contrail.route.response.information.ContrailRouteResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.information.NetworkInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.response.information.NetworkResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.network.topology.identifier.structure.NetworkTopologyIdentifierStructureBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.preload.network.topology.information.PreloadNetworkTopologyInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.preload.vf.module.topology.information.PreloadVfModuleTopologyInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.request.information.RequestInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.sdnc.request.header.SdncRequestHeaderBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.security.zone.response.information.SecurityZoneResponseInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.data.ServiceDataBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.information.ServiceInformationBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.Service;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.level.oper.status.ServiceLevelOperStatusBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.ServiceBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.model.infrastructure.ServiceKey;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.response.information.ServiceResponseInformationBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.service.status.ServiceStatusBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.tunnelxconn.response.information.TunnelxconnResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.information.VfModuleInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.response.information.VfModuleResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.topology.VfModuleTopologyBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vf.module.topology.identifier.VfModuleTopologyIdentifierBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.information.VnfInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.response.information.VnfResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.vnf.topology.identifier.structure.VnfTopologyIdentifierStructureBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.details.PnfDetailsBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.response.information.PnfResponseInformationBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.pnf.topology.identifier.structure.PnfTopologyIdentifierStructureBuilder;
import org.opendaylight.yangtools.concepts.Builder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
-import java.util.function.Function;
-
/**
* This uill class provides utility to build yang objects using a recursive syntax that resembles the tree structure
*/
public class MDSALUtil {
+ public static PreloadVfModuleTopologyOperationInputBuilder preloadVfModuleTopologyOperationInput() {
+ return new PreloadVfModuleTopologyOperationInputBuilder();
+ }
+
+ public static GenericConfigurationTopologyOperationInputBuilder GenericConfigurationTopologyOperationInput() {
+ return new GenericConfigurationTopologyOperationInputBuilder();
+ }
+
+ public static GenericConfigurationNotificationInputBuilder GenericConfigurationNotificationInput() {
+ return new GenericConfigurationNotificationInputBuilder();
+ }
+
+ public static GetpathsegmentTopologyOperationInputBuilder GetpathsegmentTopologyOperationInput() {
+ return new GetpathsegmentTopologyOperationInputBuilder();
+ }
+
+ public static PolicyUpdateNotifyOperationInputBuilder PolicyUpdateNotifyOperationInput() {
+ return new PolicyUpdateNotifyOperationInputBuilder();
+ }
+
+ public static PortMirrorTopologyOperationInputBuilder PortMirrorTopologyOperationInput() {
+ return new PortMirrorTopologyOperationInputBuilder();
+ }
+
+ public static PreloadVfModuleTopologyOperationOutputBuilder preloadVfModuleTopologyOperationOutput() {
+ return new PreloadVfModuleTopologyOperationOutputBuilder();
+ }
+
+ public static PreloadNetworkTopologyOperationInputBuilder preloadNetworkTopologyOperationInput() {
+ return new PreloadNetworkTopologyOperationInputBuilder();
+ }
+
+ public static PreloadNetworkTopologyOperationOutputBuilder preloadNetworkTopologyOperationOutput() {
+ return new PreloadNetworkTopologyOperationOutputBuilder();
+ }
+
+ public static BrgTopologyOperationInputBuilder brgTopologyOperationInput() {
+ return new BrgTopologyOperationInputBuilder();
+ }
+
+ public static BrgTopologyOperationOutputBuilder brgTopologyOperationOutput() {
+ return new BrgTopologyOperationOutputBuilder();
+ }
+
+ public static TunnelxconnTopologyOperationInputBuilder tunnelxconnTopologyOperationInput() {
+ return new TunnelxconnTopologyOperationInputBuilder();
+ }
+
+ public static TunnelxconnTopologyOperationOutputBuilder tunnelxconnTopologyOperationOutput() {
+ return new TunnelxconnTopologyOperationOutputBuilder();
+ }
+
+ public static SecurityZoneTopologyOperationInputBuilder securityZoneTopologyOperationInput() {
+ return new SecurityZoneTopologyOperationInputBuilder();
+ }
+
+ public static SecurityZoneTopologyOperationOutputBuilder securityZoneTopologyOperationOutput() {
+ return new SecurityZoneTopologyOperationOutputBuilder();
+ }
+
+ public static ContrailRouteTopologyOperationInputBuilder contrailRouteTopologyOperationInput() {
+ return new ContrailRouteTopologyOperationInputBuilder();
+ }
+
+ public static ContrailRouteTopologyOperationOutputBuilder contrailRouteTopologyOperationOutput() {
+ return new ContrailRouteTopologyOperationOutputBuilder();
+ }
+
+ public static VfModuleTopologyOperationInputBuilder vfModuleTopologyOperationInput() {
+ return new VfModuleTopologyOperationInputBuilder();
+ }
+
+ public static VfModuleTopologyOperationOutputBuilder vfModuleTopologyOperationOutput() {
+ return new VfModuleTopologyOperationOutputBuilder();
+ }
+
+ public static PnfTopologyOperationInputBuilder pnfTopologyOperationInput() {
+ return new PnfTopologyOperationInputBuilder();
+ }
+
+ public static PnfTopologyOperationOutputBuilder pnfTopologyOperationOutput() {
+ return new PnfTopologyOperationOutputBuilder();
+ }
+
+ public static VnfTopologyOperationInputBuilder vnfTopologyOperationInput() {
+ return new VnfTopologyOperationInputBuilder();
+ }
+
+ public static VnfTopologyOperationOutputBuilder vnfTopologyOperationOutput() {
+ return new VnfTopologyOperationOutputBuilder();
+ }
+
public static ServiceTopologyOperationInputBuilder serviceTopologyOperationInput() {
return new ServiceTopologyOperationInputBuilder();
}
-
- public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput(){
+ public static ServiceTopologyOperationOutputBuilder serviceTopologyOperationOutput() {
return new ServiceTopologyOperationOutputBuilder();
}
return new RequestInformationBuilder();
}
- public static ServiceResponseInformationBuilder serviceResponseInformation(){
- return new ServiceResponseInformationBuilder();
+ public static ServiceResponseInformationBuilder serviceResponseInformation() {
+ return new ServiceResponseInformationBuilder();
+ }
+
+ public static SecurityZoneResponseInformationBuilder securityZoneResponseInformation() {
+ return new SecurityZoneResponseInformationBuilder();
+ }
+
+ public static TunnelxconnResponseInformationBuilder tunnelxconnResponseInformation() {
+ return new TunnelxconnResponseInformationBuilder();
+ }
+
+ public static BrgResponseInformationBuilder brgResponseInformation() {
+ return new BrgResponseInformationBuilder();
+ }
+
+ public static ContrailRouteResponseInformationBuilder contrailRouteResponseInformation() {
+ return new ContrailRouteResponseInformationBuilder();
+ }
+
+ public static PnfResponseInformationBuilder pnfResponseInformation() {
+ return new PnfResponseInformationBuilder();
+ }
+
+ public static VnfResponseInformationBuilder vnfResponseInformation() {
+ return new VnfResponseInformationBuilder();
+ }
+
+ public static VfModuleResponseInformationBuilder vfModuleResponseInformation() {
+ return new VfModuleResponseInformationBuilder();
}
public static ServiceInformationBuilder serviceInformationBuilder() {
- return new ServiceInformationBuilder();
+ return new ServiceInformationBuilder();
}
+ public static PreloadNetworkTopologyInformationBuilder preloadNetworkTopologyInformationBuilder() {
+ return new PreloadNetworkTopologyInformationBuilder();
+ }
- public static ServiceBuilder service(){return new ServiceBuilder();}
+ public static NetworkTopologyIdentifierStructureBuilder networkTopologyIdentifierStructureBuilder(){
+ return new NetworkTopologyIdentifierStructureBuilder();
+ }
+ public static PnfDetailsBuilder pnfDetailsBuilder() {
+ return new PnfDetailsBuilder();
+ }
- public static ServiceDataBuilder serviceData(){return new ServiceDataBuilder();}
+ public static VnfInformationBuilder vnfInformationBuilder() {
+ return new VnfInformationBuilder();
+ }
+ public static VfModuleInformationBuilder vfModuleInformationBuilder() {
+ return new VfModuleInformationBuilder();
+ }
- public static ServiceStatusBuilder serviceStatus(){return new ServiceStatusBuilder();}
+ public static ServiceBuilder service() {
+ return new ServiceBuilder();
+ }
- public static <P> P build(Builder<P> b) {
- return b == null? null :b.build();
+ public static ServiceDataBuilder serviceData() {
+ return new ServiceDataBuilder();
+ }
+
+ public static ServiceStatusBuilder serviceStatus() {
+ return new ServiceStatusBuilder();
}
- public static <O> O result(Future<RpcResult<O>> future, Function<RpcResult<O>,O> function) throws Exception {
- return function.apply(future.get());
+ public static NetworkInformationBuilder networkInformation() {
+ return new NetworkInformationBuilder();
}
- public static <I,O> O rpc(Function<I,Future<RpcResult<O>>> rpc,Function<RpcResult<O>,O> function,I input) throws Exception {
- Future<RpcResult<O>> future = rpc.apply(input);
- return function.apply(future.get());
+ public static NetworkTopologyOperationInputBuilder networkTopologyOperationInput() {
+ return new NetworkTopologyOperationInputBuilder();
}
+ public static NetworkTopologyOperationOutputBuilder networkTopologyOperationOutput() {
+ return new NetworkTopologyOperationOutputBuilder();
+ }
+ public static PnfTopologyIdentifierStructureBuilder pnfTopologyIdentifierStructureBuilder() {
+ return new PnfTopologyIdentifierStructureBuilder();
+ }
- /** @return Service - the Service object read from the DataBroker or null if none was found */
- public static Service read(DataBroker dataBroker,String serviceKey, LogicalDatastoreType logicalDatastoreType) throws Exception {
- InstanceIdentifier serviceInstanceIdentifier = InstanceIdentifier.<Services>builder(Services.class)
- .child(Service.class, new ServiceKey(serviceKey)).build();
- ReadOnlyTransaction readTx = dataBroker.newReadOnlyTransaction();
- Optional<Service> data = (Optional<Service>) readTx.read(logicalDatastoreType, serviceInstanceIdentifier).get();
- if(!data.isPresent()){
- return null;
- }
+ public static VnfTopologyIdentifierStructureBuilder vnfTopologyIdentifierStructureBuilder() {
+ return new VnfTopologyIdentifierStructureBuilder();
+ }
+
+ public static PreloadVfModuleTopologyInformationBuilder preloadVfModuleTopologyInformationBuilder() {
+ return new PreloadVfModuleTopologyInformationBuilder();
+ }
+
+ public static VfModuleTopologyBuilder vfModuleTopologyBuilder() {
+ return new VfModuleTopologyBuilder();
+ }
+
+ public static VfModuleTopologyIdentifierBuilder vfModuleTopologyIdentifierBuilder() {
+ return new VfModuleTopologyIdentifierBuilder();
+ }
+
+ public static NetworkResponseInformationBuilder networkResponseInformation() {
+ return new NetworkResponseInformationBuilder();
+ }
+ public static ConnectionAttachmentTopologyOperationInputBuilder connectionAttachmentTopologyOperationInput() {
+ return new ConnectionAttachmentTopologyOperationInputBuilder();
+ }
- //The toString() value from a Service object returned form data.get() is different than the toString() value
- //from a Service Object constructed from a Builder. This makes it difficult to compare deltas when doing a
- // assertEquals. That why we rebuild it her to solve that problem.
- Service service = data.get();
- return build(
- (new ServiceBuilder(service))
- .setServiceStatus(build(
- service.getServiceStatus() == null ? null : new ServiceStatusBuilder(service.getServiceStatus())
- ))
- .setServiceData(build(
- service.getServiceData() == null ? null : new ServiceDataBuilder(service.getServiceData())
- ))
- );
+ public static ConnectionAttachmentTopologyOperationOutputBuilder connectionAttachmentTopologyOperationOutput() {
+ return new ConnectionAttachmentTopologyOperationOutputBuilder();
}
+ public static ConnectionAttachmentResponseInformationBuilder connectionAttachmentResponseInformation() {
+ return new ConnectionAttachmentResponseInformationBuilder();
+ }
+ public static ServiceLevelOperStatusBuilder serviceLevelOperStatus() {
+ return new ServiceLevelOperStatusBuilder();
+ }
+ public static <P> P build(Builder<P> b) {
+ return b == null ? null : b.build();
+ }
+ public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject) {
+ if (sourceDataObject == null) {
+ return null;
+ }
+ B bp = builderConstructor.apply(sourceDataObject);
+ return bp.build();
+ }
+ public static <P, B extends Builder<P>> P build(Function<P, B> builderConstructor, P sourceDataObject,
+ Consumer<B> builder) {
+ if (sourceDataObject == null) {
+ return null;
+ }
+ B bp = builderConstructor.apply(sourceDataObject);
+ builder.accept(bp);
+ return bp.build();
+ }
+ public static <I, O> O exec(Function<I, Future<RpcResult<O>>> rpc, I rpcParameter,
+ Function<RpcResult<O>, O> rpcResult) throws Exception {
+ Future<RpcResult<O>> future = rpc.apply(rpcParameter);
+ return rpcResult.apply(future.get());
+ }
}