package com.idega.block.process.variables; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import com.idega.util.ArrayUtil; import com.idega.util.CoreConstants; import com.idega.util.ListUtil; import com.idega.util.StringUtil; /** * * <p>Holding variable names to be shown in presentation logic</p> * <p>You can report about problems to: * <a href="mailto:martynas@idega.is">Martynas StakÄ—</a></p> * * @version 1.0.0 Jun 20, 2014 * @author <a href="mailto:martynas@idega.is">Martynas StakÄ—</a> */ @Scope(BeanDefinition.SCOPE_SINGLETON) @Service public class VisibleVariablesBean { private Map<String, Collection<String>> variablesByComponentId = null; public void setVariables(String componentId, String commaSeparatedVariables) { if (!StringUtil.isEmpty(commaSeparatedVariables)) { String[] splittedVariables = commaSeparatedVariables.split(CoreConstants.COMMA); if (!ArrayUtil.isEmpty(splittedVariables)) { setVariables(componentId, Arrays.asList(splittedVariables)); } } } public void setVariables(String componentId, Collection<String> variables) { if (!StringUtil.isEmpty(componentId)) { Collection<String> existingVariables = getVariablesByComponentId().get(componentId); if (ListUtil.isEmpty(existingVariables)) { existingVariables = new ArrayList<String>(); getVariablesByComponentId().put(componentId, existingVariables); } else { existingVariables.clear(); } existingVariables.addAll(variables); } } public Map<String, Collection<String>> getVariablesByComponentId() { if (this.variablesByComponentId == null) { this.variablesByComponentId = new HashMap<String, Collection<String>>(); } return variablesByComponentId; } public Collection<String> getVariablesByComponentId(String componentId) { return getVariablesByComponentId().get(componentId); } public void setVariablesByComponentId(Map<String, Collection<String>> variablesByComponentId) { this.variablesByComponentId = variablesByComponentId; } }