| package org.jetbrains.jps.android.model.impl; |
| |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.jps.android.model.JpsAndroidDexCompilerConfiguration; |
| import org.jetbrains.jps.model.JpsElementChildRole; |
| import org.jetbrains.jps.model.ex.JpsElementBase; |
| import org.jetbrains.jps.model.ex.JpsElementChildRoleBase; |
| |
| /** |
| * @author Eugene.Kudelevsky |
| */ |
| public class JpsAndroidDexCompilerConfigurationImpl extends JpsElementBase<JpsAndroidDexCompilerConfigurationImpl> |
| implements JpsAndroidDexCompilerConfiguration { |
| |
| public static final JpsElementChildRole<JpsAndroidDexCompilerConfiguration> ROLE = |
| JpsElementChildRoleBase.create("android dex compiler configuration"); |
| |
| private final MyState myState = new MyState(); |
| |
| public JpsAndroidDexCompilerConfigurationImpl() { |
| } |
| |
| public JpsAndroidDexCompilerConfigurationImpl(@NotNull MyState state) { |
| myState.MAX_HEAP_SIZE = state.MAX_HEAP_SIZE; |
| myState.OPTIMIZE = state.OPTIMIZE; |
| myState.VM_OPTIONS = state.VM_OPTIONS; |
| myState.FORCE_JUMBO = state.FORCE_JUMBO; |
| myState.CORE_LIBRARY = state.CORE_LIBRARY; |
| myState.PROGUARD_VM_OPTIONS = state.PROGUARD_VM_OPTIONS; |
| } |
| |
| @Override |
| public String getVmOptions() { |
| return myState.VM_OPTIONS; |
| } |
| |
| @Override |
| public void setVmOptions(String value) { |
| if (!myState.VM_OPTIONS.equals(value)) { |
| myState.VM_OPTIONS = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @Override |
| public int getMaxHeapSize() { |
| return myState.MAX_HEAP_SIZE; |
| } |
| |
| @Override |
| public void setMaxHeapSize(int value) { |
| if (myState.MAX_HEAP_SIZE != value) { |
| myState.MAX_HEAP_SIZE = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @Override |
| public boolean isOptimize() { |
| return myState.OPTIMIZE; |
| } |
| |
| @Override |
| public void setOptimize(boolean value) { |
| if (myState.OPTIMIZE != value) { |
| myState.OPTIMIZE = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @Override |
| public boolean isForceJumbo() { |
| return myState.FORCE_JUMBO; |
| } |
| |
| @Override |
| public void setForceJumbo(boolean value) { |
| if (myState.FORCE_JUMBO != value) { |
| myState.FORCE_JUMBO = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @Override |
| public boolean isCoreLibrary() { |
| return myState.CORE_LIBRARY; |
| } |
| |
| @Override |
| public void setCoreLibrary(boolean value) { |
| if (myState.CORE_LIBRARY != value) { |
| myState.CORE_LIBRARY = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @Override |
| public String getProguardVmOptions() { |
| return myState.PROGUARD_VM_OPTIONS; |
| } |
| |
| @Override |
| public void setProguardVmOptions(String value) { |
| if (!myState.PROGUARD_VM_OPTIONS.equals(value)) { |
| myState.PROGUARD_VM_OPTIONS = value; |
| fireElementChanged(); |
| } |
| } |
| |
| @NotNull |
| @Override |
| public JpsAndroidDexCompilerConfigurationImpl createCopy() { |
| return new JpsAndroidDexCompilerConfigurationImpl(myState); |
| } |
| |
| @Override |
| public void applyChanges(@NotNull JpsAndroidDexCompilerConfigurationImpl modified) { |
| setVmOptions(modified.getVmOptions()); |
| setMaxHeapSize(modified.getMaxHeapSize()); |
| setOptimize(modified.isOptimize()); |
| setForceJumbo(modified.isForceJumbo()); |
| setCoreLibrary(modified.isCoreLibrary()); |
| setProguardVmOptions(modified.getProguardVmOptions()); |
| } |
| |
| @NotNull |
| public MyState getState() { |
| return myState; |
| } |
| |
| public static class MyState { |
| public String VM_OPTIONS = ""; |
| public String PROGUARD_VM_OPTIONS = ""; |
| public int MAX_HEAP_SIZE = 1024; |
| public boolean OPTIMIZE = true; |
| public boolean FORCE_JUMBO = false; |
| public boolean CORE_LIBRARY = false; |
| } |
| } |