blob: 60afac0f102fee99fc3892f5eb7d914564844c51 [file] [log] [blame]
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;
}
}