/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.model.configuration.impl; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.codehaus.jackson.annotate.JsonIgnore; import de.rcenvironment.core.component.model.configuration.api.ConfigurationDefinitionConstants; import de.rcenvironment.core.component.model.configuration.api.ConfigurationMetaDataDefinition; /** * Implementation of {@link ConfigurationMetaDataDefinition}. * * @author Doreen Seider */ public class ConfigurationMetaDataDefinitionImpl implements Serializable, ConfigurationMetaDataDefinition { private static final int DEFAULT_POSITION = 1; private static final long serialVersionUID = 1821211107072929401L; private List<Object> rawConfigurationDef = new ArrayList<Object>(); private Map<String, Object> configurationDef = new HashMap<String, Object>(); /** * @param incPlaceholdersDef raw configuration meta data definition to set */ public void setConfigurationMetaDataDefinition(List<Object> incPlaceholdersDef) { rawConfigurationDef = incPlaceholdersDef; for (Object obj : rawConfigurationDef) { String placeholderKey = (String) ((Map<String, Object>) obj).get(ConfigurationDefinitionConstants.KEY_METADATA_CONFIG_KEY); configurationDef.put(placeholderKey, obj); } } /** * @param configurationDefs configuration meta data definitions to set */ @JsonIgnore public void setConfigurationMetaDataDefinition(Set<ConfigurationMetaDataDefinitionImpl> configurationDefs) { for (ConfigurationMetaDataDefinitionImpl def : configurationDefs) { configurationDef.putAll(def.configurationDef); rawConfigurationDef = def.rawConfigurationDef; } } @JsonIgnore @Override public String getGuiName(String key) { if (configurationDef.containsKey(key)) { return (String) ((Map<String, Object>) configurationDef.get(key)).get(ConfigurationDefinitionConstants.KEY_METADATA_GUI_NAME); } return key; } @JsonIgnore @Override public int getGuiPosition(String key) { if (configurationDef.containsKey(key)) { return Integer.valueOf((String) ((Map<String, Object>) configurationDef.get(key)). get(ConfigurationDefinitionConstants.KEY_METADATA_GUI_POSITION)); } return DEFAULT_POSITION; } @JsonIgnore @Override public String getGuiGroupName(String key) { if (configurationDef.containsKey(key)) { return (String) ((Map<String, Object>) configurationDef.get(key)) .get(ConfigurationDefinitionConstants.KEY_METADATA_GUI_GROUP_NAME); } return key; } @JsonIgnore @Override public String getMetaDataValue(String key, String metaDataKey) { if (configurationDef.containsKey(key)) { return (String) ((Map<String, Object>) configurationDef.get(key)).get(metaDataKey); } return null; } public List<Object> getConfigurationMetaDataDefinition() { return rawConfigurationDef; } }