package org.tynamo.descriptor.extension; import org.tynamo.PageType; import org.tynamo.descriptor.Descriptor; import java.util.HashMap; import java.util.Map; public class BeanModelExtension implements DescriptorExtension { private final static String defaultKey = PageType.DEFAULT.getContextKey(); private Map<String, String> reorderMap = new HashMap<String, String>(); private Map<String, String> includeMap = new HashMap<String, String>(); private Map<String, String> excludeMap = new HashMap<String, String>(); private BeanModelExtension(){} public String getReorderPropertyNames(String contextKey) { return reorderMap.containsKey(contextKey) ? reorderMap.get(contextKey) : getReorderPropertyNames(); } public String getIncludePropertyNames(String contextKey) { return includeMap.containsKey(contextKey) ? includeMap.get(contextKey) : getIncludePropertyNames(); } public String getExcludePropertyNames(String contextKey) { return excludeMap.containsKey(contextKey) ? excludeMap.get(contextKey) : getExcludePropertyNames(); } public void setReorderPropertyNames(String contextKey, String properties) { reorderMap.put(contextKey, properties); } public void setIncludePropertyNames(String contextKey, String properties) { includeMap.put(contextKey, properties); } public void setExcludePropertyNames(String contextKey, String properties) { excludeMap.put(contextKey, properties); } public String getReorderPropertyNames() { return reorderMap.get(defaultKey); } public String getIncludePropertyNames() { return includeMap.get(defaultKey); } public String getExcludePropertyNames() { return excludeMap.get(defaultKey); } public void setReorderPropertyNames(String properties) { reorderMap.put(defaultKey, properties); } public boolean hasModifiersForKey(String key) { return reorderMap.containsKey(key) || includeMap.containsKey(key) || excludeMap.containsKey(key) || reorderMap.containsKey(defaultKey) || includeMap.containsKey(defaultKey) || excludeMap.containsKey(defaultKey); } public static BeanModelExtension obtainBeanModelExtension(Descriptor descriptor) { BeanModelExtension beanModelExtension = descriptor.getExtension(BeanModelExtension.class); if (beanModelExtension == null) { beanModelExtension = new BeanModelExtension(); descriptor.addExtension(BeanModelExtension.class, beanModelExtension); } return beanModelExtension; } }