3703e18a64d07d00163e0d6b5e6f72bcc2346d86
[ccsdk/features.git] /
1 /*******************************************************************************
2  * ============LICENSE_START========================================================================
3  * ONAP : ccsdk feature sdnr wt
4  * =================================================================================================
5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
6  * =================================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software distributed under the License
13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14  * or implied. See the License for the specific language governing permissions and limitations under
15  * the License.
16  * ============LICENSE_END==========================================================================
17  ******************************************************************************/
18 package org.onap.ccsdk.features.sdnr.wt.devicemanager.base.internalTypes;
19
20 import java.io.BufferedReader;
21 import java.io.File;
22 import java.io.FileNotFoundException;
23 import java.io.FileReader;
24 import java.io.IOException;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 public class TemplateFile {
29
30     protected final HashMap<String, Object> mKeyValuePairs;
31     private final String mContent;
32
33     public TemplateFile(String content) {
34         this.mKeyValuePairs = new HashMap<>();
35         this.mContent = content;
36
37     }
38
39     public TemplateFile(File f) throws IOException {
40         this(initialize(f));
41     }
42
43     public void addValue(String key, Object value) {
44         this.mKeyValuePairs.put(key, value);
45     }
46
47     public void removeValue(String key) {
48         this.mKeyValuePairs.remove(key);
49     }
50
51     private String replace() {
52         String s = this.mContent;
53         String key;
54         Object value;
55         for (Map.Entry<String, Object> entry : this.mKeyValuePairs.entrySet()) {
56             key = entry.getKey();
57             value = entry.getValue();
58             if (value != null) {
59                 s = s.replace(key, value.toString());
60             }
61         }
62         return s;
63     }
64
65     @Override
66     public String toString() {
67         return this.replace();
68     }
69
70     private static String initialize(File f) throws FileNotFoundException, IOException {
71         StringBuilder sb = new StringBuilder();
72         try (BufferedReader br = new BufferedReader(new FileReader(f));) {
73             String line = br.readLine();
74
75             while (line != null) {
76                 sb.append(line);
77                 line = br.readLine();
78             }
79             br.close();
80         }
81         return sb.toString();
82     }
83
84 }