package org.uva.student.calinwouter.qlqls.qls.model.functions;
import org.uva.student.calinwouter.qlqls.ql.interfaces.ITypeDescriptor;
import org.uva.student.calinwouter.qlqls.qls.abstractions.AbstractWidget;
import org.uva.student.calinwouter.qlqls.qls.model.FieldType;
import org.uva.student.calinwouter.qlqls.qls.model.StylingSettings;
import java.util.HashMap;
import java.util.Map;
public class Defaults {
private final Map<ITypeDescriptor, Map<String, Object>> defaultStyleSheetSettings;
// As this class is created through reflection, it cannot be instantiated using generics at this moment.
@SuppressWarnings("unchecked")
public Defaults(Map defaultStyleSheetSettings) {
this.defaultStyleSheetSettings = (Map<ITypeDescriptor, Map<String, Object>>)
defaultStyleSheetSettings;
}
public Map<String, Object> deriveStylingSettingsMap(FieldType fieldType) {
final ITypeDescriptor fieldTypeDescriptor = fieldType.getTypeDescriptor();
final Map<String, Object> stylingSettings = defaultStyleSheetSettings.get(fieldTypeDescriptor);
if (stylingSettings == null) {
return new HashMap<String, Object>();
}
return new HashMap<String, Object>(stylingSettings);
}
public AbstractWidget getWidget(ITypeDescriptor typeDescriptor) {
Map<String, Object> typeDefaultSettings = defaultStyleSheetSettings.get(typeDescriptor);
if (typeDefaultSettings == null) {
return null;
}
return (AbstractWidget) typeDefaultSettings.get(StylingSettings.WIDGET);
}
}