@@ -0,0 +1,3153 @@
+package dae.io.readers;%0A%0Aimport dae.components.ComponentType;%0Aimport dae.components.PrefabComponent;%0Aimport dae.io.XMLUtils;%0Aimport dae.prefabs.PropertyReflector;%0Aimport dae.prefabs.ReflectionManager;%0Aimport dae.prefabs.parameters.ChoiceParameter;%0Aimport dae.prefabs.parameters.FileParameter;%0Aimport dae.prefabs.parameters.Float3Parameter;%0Aimport dae.prefabs.parameters.FloatParameter;%0Aimport dae.prefabs.parameters.IntParameter;%0Aimport dae.prefabs.parameters.Parameter;%0Aimport dae.prefabs.parameters.RangeParameter;%0Aimport dae.prefabs.parameters.TextParameter;%0Aimport java.util.HashMap;%0A%0A/**%0A * @author Koen Samyn%0A */%0Apublic class DefaultPrefabImporter implements PrefabTextImporter %7B%0A%0A    private HashMap%3CClass, ParameterParser%3E parameterMap =%0A            new HashMap%3CClass, ParameterParser%3E();%0A%0A    /**%0A     * Creates a new DefaultPrefabImporter object.%0A     */%0A    public DefaultPrefabImporter() %7B%0A        parameterMap.put(FloatParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return Float.parseFloat(value);%0A            %7D%0A        %7D);%0A        parameterMap.put(RangeParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return Float.parseFloat(value);%0A            %7D%0A        %7D);%0A        parameterMap.put(IntParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return Float.parseFloat(value);%0A            %7D%0A        %7D);%0A        parameterMap.put(TextParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return value;%0A            %7D%0A        %7D);%0A        parameterMap.put(Float3Parameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return XMLUtils.parseFloat3(value);%0A            %7D%0A        %7D);%0A        parameterMap.put(FileParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return value;%0A            %7D%0A        %7D);%0A        parameterMap.put(ChoiceParameter.class, new ParameterParser() %7B%0A            public Object parseParameter(String value) %7B%0A                return value;%0A            %7D%0A        %7D);%0A    %7D%0A%0A    /**%0A     * Parses a parameter and sets the value on the correct property of the%0A     * component.%0A     *%0A     * @param p the prefab component to set the property on.%0A     * @param ct the component type of the PrefabComponent.%0A     * @param id the id of the parameter.%0A     * @param value the value of the parameter.%0A     */%0A    public void parseAndSetParameter(PrefabComponent p, ComponentType ct, String id, String value) %7B%0A        Parameter parameter = ct.findParameter(id);%0A        ParameterParser pp = parameterMap.get(parameter.getClass());%0A        if ( pp != null )%7B%0A            Object oValue = pp.parseParameter(value);%0A            if ( oValue != null)%7B%0A                PropertyReflector pr = ReflectionManager.getInstance().getPropertyReflector(p.getClass());%0A                pr.invokeSetMethod(p, id, parameter.convertToObject(oValue));%0A            %7D%0A        %7D%0A    %7D%0A%7D%0A

Support for reading parameters in a structured way.