Added oparent to sdc main
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-license-rest / vendor-license-rest-services / src / main / java / org / openecomp / sdcrests / vendorlicense / rest / mapping / MapLimitRequestDtoToLimitEntity.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 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.vendorlicense.rest.mapping;
22
23 import org.openecomp.sdc.common.errors.CoreException;
24 import org.openecomp.sdc.common.errors.ErrorCode;
25 import org.openecomp.sdc.logging.api.Logger;
26 import org.openecomp.sdc.logging.api.LoggerFactory;
27 import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
28 import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
29 import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
30 import org.openecomp.sdc.vendorlicense.errors.LimitErrorBuilder;
31 import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes;
32 import org.openecomp.sdcrests.mapping.MappingBase;
33 import org.openecomp.sdcrests.vendorlicense.types.LimitRequestDto;
34
35
36 public class MapLimitRequestDtoToLimitEntity extends MappingBase<LimitRequestDto, LimitEntity> {
37
38     private static final Logger logger =
39             LoggerFactory.getLogger(MapLimitRequestDtoToLimitEntity.class);
40
41     @Override
42     public void doMapping(LimitRequestDto source, LimitEntity target) {
43         target.setName(source.getName());
44         target.setDescription(source.getDescription());
45         try {
46             LimitType type = LimitType.valueOf(source.getType());
47             target.setType(type);
48         } catch (IllegalArgumentException exception) {
49             logger.error(exception.getMessage(), exception);
50             throwInvalidValueError("type", VendorLicenseErrorCodes.LIMIT_INVALID_TYPE);
51         }
52
53         try {
54             AggregationFunction function = source.getAggregationFunction() != null ?
55                     AggregationFunction.valueOf(source.getAggregationFunction()) : null;
56             target.setAggregationFunction(function);
57         } catch (IllegalArgumentException exception) {
58             logger.error(exception.getMessage(), exception);
59             throwInvalidValueError("aggregationFunction",
60                     VendorLicenseErrorCodes.LIMIT_INVALID_AGGREGATIONFUNCTION);
61         }
62
63         target.setTime(source.getTime());
64         target.setMetric(source.getMetric());
65         target.setValue(source.getValue());
66         target.setUnit(source.getUnit());
67
68     }
69
70     private void throwInvalidValueError(String attribute, String vendorLicenseErrorCode) {
71         ErrorCode errorCode = LimitErrorBuilder.getInvalidValueErrorBuilder(attribute,
72                 vendorLicenseErrorCode);
73         throw new CoreException(errorCode);
74     }
75 }