Commit 36cea0de authored by Christos Tranoris's avatar Christos Tranoris Committed by Kostis Trantzas
Browse files

fix for #40

(cherry picked from commit 888ca64b)
parent 78d32db8
Loading
Loading
Loading
Loading
Loading
+42 −42
Original line number Diff line number Diff line
@@ -622,7 +622,7 @@ public class ServiceSpecificationRepoService {
					 * Also,
					 * we will add by default all the characteristics of this rSpec to the related bundle parent service 
					 */
					//serviceSpec = copyCharacteristicsOfResourceSpecId(  ar.getId(), serviceSpec);
					serviceSpec = copyCharacteristicsOfResourceSpecId(  ar.getId(), serviceSpec);
				}
			}

@@ -699,24 +699,24 @@ public class ServiceSpecificationRepoService {
		return targetServiceSpec;
	}
	
//	private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) {
//
//		ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid );
//		
//		if ( rSpec != null ) {
//			for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
//				ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
//				//serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );
//				serviceSpecCharacteristicItem.setName( sourceChar.getName() );
//
//				if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) {
//					targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem );					
//				}
//			}			
//		}
//		
//		return targetServiceSpec;
//	}	
	private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) {

		ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid );
		
		if ( rSpec != null ) {
			for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
				ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
				//serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );
				serviceSpecCharacteristicItem.setName( sourceChar.getName() );

				if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) {
					targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem );					
				}
			}			
		}
		
		return targetServiceSpec;
	}	

	public ServiceSpecification cloneServiceSpecification(String uuid) {
		ServiceSpecification source = this.findByUuid(uuid);
@@ -1422,11 +1422,11 @@ public class ServiceSpecificationRepoService {

		
		
//		for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
//			ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
		for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) {
			ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar );
//			serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() );			
//			serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem );		
//		}
			serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem );		
		}

		
		ResourceSpecificationRef resourceSpecRef = new ResourceSpecificationRef();
@@ -1439,25 +1439,25 @@ public class ServiceSpecificationRepoService {
		return serviceSpec;
	}
	
//	private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) {
//		
//		ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic();
//		serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription());
//		serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() );
//		serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable());
//		serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() );
//		serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality()  );
//		serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() );
//		for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) {
//			ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue();
//			serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias()));
//			serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() );
//			serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() );		
//			serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem );
//		}
//		return serviceSpecCharacteristicItem;
//	}
//	
	private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) {
		
		ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic();
		serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription());
		serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() );
		serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable());
		serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() );
		serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality()  );
		serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() );
		for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) {
			ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue();
			serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias()));
			serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() );
			serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() );		
			serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem );
		}
		return serviceSpecCharacteristicItem;
	}