package jetbrains.mps.build.ant; /*Generated by MPS */ import org.apache.tools.ant.types.DataType; import java.util.Set; import java.util.HashSet; import java.util.List; import java.util.Arrays; import java.util.ArrayList; public class JvmArgs extends DataType { private final Set<String> myArgs = new HashSet<String>(); private final List<String> myDefaultArgs = Arrays.asList("-Xss1024k", "-Xmx512m", "-XX:MaxPermSize=92m", "-XX:+HeapDumpOnOutOfMemoryError"); private final List<String> myDefaultArgsPatterns = Arrays.asList("Xss", "Xmx", "MaxPermSize=", "HeapDumpOnOutOfMemoryError"); public JvmArgs() { } public void addConfiguredArg(Arg arg) { myArgs.add(arg.getValue()); } public void addConfiguredJvmArgs(JvmArgs jvmargs) { myArgs.addAll(jvmargs.getArgs()); } public List<String> getArgs() { return getMergedArgs(); } private List<String> getMergedArgs() { if (isReference()) { return ((JvmArgs) getCheckedRef()).getMergedArgs(); } List<String> args = new ArrayList<String>(myDefaultArgs); args.add("-client"); for (String arg : myArgs) { for (int i = 0; i < myDefaultArgs.size(); i++) { if (arg.contains(myDefaultArgsPatterns.get(i))) { args.remove(myDefaultArgs.get(i)); break; } } if (!(arg.equals("-server"))) { // we always use client args.add(arg); } } return args; } }