diff options
Diffstat (limited to 'mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/Utils.java')
-rw-r--r-- | mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/Utils.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/Utils.java b/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/Utils.java new file mode 100644 index 0000000..a252886 --- /dev/null +++ b/mod2/helm-generator/helmchartgenerator-core/src/main/java/org/onap/dcaegen2/platform/helmchartgenerator/Utils.java @@ -0,0 +1,105 @@ +/* + * # ============LICENSE_START======================================================= + * # Copyright (c) 2021 AT&T Intellectual Property. All rights reserved. + * # ================================================================================ + * # Licensed under the Apache License, Version 2.0 (the "License"); + * # you may not use this file except in compliance with the License. + * # You may obtain a copy of the License at + * # + * # http://www.apache.org/licenses/LICENSE-2.0 + * # + * # Unless required by applicable law or agreed to in writing, software + * # distributed under the License is distributed on an "AS IS" BASIS, + * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * # See the License for the specific language governing permissions and + * # limitations under the License. + * # ============LICENSE_END========================================================= + */ + +package org.onap.dcaegen2.platform.helmchartgenerator; + +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Map; + +/** + * An utility class for various file related tasks. + * @author Dhrumin Desai + */ +@Slf4j +@Component +public class Utils { + + private final ObjectMapper MAPPER = new ObjectMapper(); + + public <T> T deserializeJsonFileToModel(String filePath, Class<T> modelClass) { + return deserializeJsonFileToModel(new File(filePath), modelClass); + } + + /** + * maps json file to a model class + * @param file Json file which holds the data + * @param modelClass target model class for mapping + * @return mapped model instance + */ + public <T> T deserializeJsonFileToModel(File file, Class<T> modelClass) { + try { + return MAPPER.readValue(file, modelClass); + } catch (IOException e) { + log.error(e.getMessage()); + throw new RuntimeException("Error occurred while converting file to the given model class"); + } + } + + /** + * copies dir/file to a temp location on OS + * @param srcLocation + * @return + */ + public File cloneFileToTempLocation(String srcLocation) { + File cloneLocation = null; + try { + Path tempRootDir = Files.createTempDirectory("chart"); + cloneLocation = new File(tempRootDir.toString()); + log.info("cloning dir/file at : " + tempRootDir); + FileUtils.copyDirectory(new File(srcLocation), cloneLocation); + } catch (IOException e) { + log.error(e.getMessage()); + throw new RuntimeException("Error occured while cloning file to temp location."); + } + return cloneLocation; + } + + /** + * deletes dir / file from temp location of OS + * @param dir dir to be deleted + */ + public void deleteTempFileLocation(File dir) { + try { + FileUtils.deleteDirectory(dir); + } catch (IOException e) { + log.warn("Could not delete dir/file: " + dir.getAbsolutePath()); + } + } + + /** + * puts value into a map if only exists + * @param map a map + * @param key a key + * @param value a value + */ + public void putIfNotNull(Map<String, Object> map, String key, Object value){ + if(value != null){ + map.put(key, value); + } + } + +} + |