Open Kilda Java Documentation
MappingConfigurationValueProcessor.java
Go to the documentation of this file.
1 /* Copyright 2018 Telstra Open Source
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 package org.openkilda.config.mapping;
17 
18 import static java.util.Objects.requireNonNull;
19 
20 import com.sabre.oss.conf4j.processor.ConfigurationValue;
21 import com.sabre.oss.conf4j.processor.ConfigurationValueProcessor;
22 
30 public class MappingConfigurationValueProcessor implements ConfigurationValueProcessor {
31  private final MappingStrategy[] mappingStrategies;
32 
33  public MappingConfigurationValueProcessor(MappingStrategy... mappingStrategies) {
34  this.mappingStrategies = mappingStrategies;
35  }
36 
37  @Override
38  public ConfigurationValue process(ConfigurationValue value) {
39  requireNonNull(value, "value cannot be null");
40 
41  if (value.getAttributes() != null && value.getAttributes().containsKey(Mapping.MAPPING_META_ATTR)) {
42  String mappingTarget = value.getAttributes().get(Mapping.MAPPING_META_ATTR);
43  for (MappingStrategy mappingStrategy : mappingStrategies) {
44  if (mappingStrategy.isApplicable(mappingTarget)) {
45  value.setValue(mappingStrategy.apply(mappingTarget, value.getValue()));
46  }
47  }
48  }
49 
50  return value;
51  }
52 }
value
Definition: nodes.py:62