push addional code
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-software-products-rest / vendor-software-products-rest-services / src / main / java / org / openecomp / sdcrests / vsp / rest / mapping / MapCompositionEntityResponseToDto.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdcrests.vsp.rest.mapping;
22
23 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
24 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionDataEntity;
25 import org.openecomp.sdcrests.mapping.MappingBase;
26 import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionDataEntityDto;
27 import org.openecomp.sdcrests.vendorsoftwareproducts.types.CompositionEntityResponseDto;
28
29 public class MapCompositionEntityResponseToDto<S extends CompositionDataEntity,
30     T extends CompositionDataEntityDto, M extends MappingBase<S, T>>
31     extends MappingBase<CompositionEntityResponse<S>, CompositionEntityResponseDto<T>> {
32   private M dataMapper;
33   private Class<T> targetDataClass;
34
35   public MapCompositionEntityResponseToDto(M dataMapper, Class<T> targetDataClass) {
36     this.dataMapper = dataMapper;
37     this.targetDataClass = targetDataClass;
38   }
39
40   @Override
41   public void doMapping(CompositionEntityResponse<S> source,
42                         CompositionEntityResponseDto<T> target) {
43     target.setId(source.getId());
44     target.setSchema(source.getSchema());
45     target.setData(dataMapper.applyMapping(source.getData(), targetDataClass));
46   }
47 }