blob: abf3cd33c6a23385ba51e12fd43b10eb2a95b160 [file] [log] [blame]
package org.jetbrains.jps.android.model.impl;
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.android.model.JpsAndroidDexCompilerConfiguration;
import org.jetbrains.jps.android.model.JpsAndroidExtensionService;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
/**
* @author Eugene.Kudelevsky
*/
public class JpsAndroidDexSettingsSerializer extends JpsProjectExtensionSerializer {
private static final SkipDefaultValuesSerializationFilters FILTERS = new SkipDefaultValuesSerializationFilters();
public JpsAndroidDexSettingsSerializer() {
super("androidDexCompiler.xml", "AndroidDexCompilerConfiguration");
}
@Override
public void loadExtension(@NotNull JpsProject element, @NotNull Element componentTag) {
JpsAndroidDexCompilerConfigurationImpl.MyState state = XmlSerializer.deserialize(
componentTag, JpsAndroidDexCompilerConfigurationImpl.MyState.class);
if (state == null) {
state = new JpsAndroidDexCompilerConfigurationImpl.MyState();
}
JpsAndroidExtensionService.getInstance().setDexCompilerConfiguration(element, new JpsAndroidDexCompilerConfigurationImpl(state));
}
@Override
public void saveExtension(@NotNull JpsProject element, @NotNull Element componentTag) {
final JpsAndroidDexCompilerConfiguration configuration =
JpsAndroidExtensionService.getInstance().getDexCompilerConfiguration(element);
if (configuration != null) {
XmlSerializer.serializeInto(((JpsAndroidDexCompilerConfigurationImpl)configuration).getState(),
componentTag, FILTERS);
}
}
}