| /* |
| * Copyright 2008 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.dev.jjs; |
| |
| import com.google.gwt.dev.js.JsNamespaceOption; |
| import com.google.gwt.dev.util.arg.OptionMethodNameDisplayMode; |
| import com.google.gwt.dev.util.arg.OptionOptimize; |
| import com.google.gwt.dev.util.arg.SourceLevel; |
| import com.google.gwt.util.regexfilter.WhitelistRegexFilter; |
| |
| import java.io.Serializable; |
| |
| /** |
| * Concrete class to implement all JJS options. |
| */ |
| public class JJSOptionsImpl implements JJSOptions, Serializable { |
| |
| private boolean addRuntimeChecks = false; |
| private boolean clusterSimilarFunctions = true; |
| private boolean incrementalCompile = false; |
| private boolean compilerMetricsEnabled = false; |
| private boolean disableClassMetadata = false; |
| private boolean enableAssertions; |
| private int fragmentCount = -1; |
| private int fragmentsMerge = -1; |
| private boolean inlineLiteralParameters = true; |
| private boolean jsonSoycEnabled = false; |
| private JsNamespaceOption namespace = JsNamespaceOption.NONE; |
| private int optimizationLevel = OptionOptimize.OPTIMIZE_LEVEL_DEFAULT; |
| private boolean optimizeDataflow = true; |
| private boolean ordinalizeEnums = true; |
| private JsOutputOption output = JsOutputOption.OBFUSCATED; |
| private boolean removeDuplicateFunctions = true; |
| private boolean runAsyncEnabled = true; |
| private SourceLevel sourceLevel = SourceLevel.DEFAULT_SOURCE_LEVEL; |
| private boolean soycEnabled = false; |
| private boolean soycExtra = false; |
| private boolean soycHtmlDisabled = false; |
| private boolean strict = false; |
| private boolean generateJsInteropExports = false; |
| private WhitelistRegexFilter jsInteropExportFilter = new WhitelistRegexFilter(); |
| private boolean useDetailedTypeIds = false; |
| private OptionMethodNameDisplayMode.Mode methodNameDisplayMode = |
| OptionMethodNameDisplayMode.Mode.NONE; |
| private boolean closureFormatEnabled = false; |
| |
| public JJSOptionsImpl() { |
| } |
| |
| public void copyFrom(JJSOptions other) { |
| setAddRuntimeChecks(other.shouldAddRuntimeChecks()); |
| setClassMetadataDisabled(other.isClassMetadataDisabled()); |
| setClusterSimilarFunctions(other.shouldClusterSimilarFunctions()); |
| setIncrementalCompileEnabled(other.isIncrementalCompileEnabled()); |
| setCompilerMetricsEnabled(other.isCompilerMetricsEnabled()); |
| setEnableAssertions(other.isEnableAssertions()); |
| setFragmentCount(other.getFragmentCount()); |
| setFragmentsMerge(other.getFragmentsMerge()); |
| setInlineLiteralParameters(other.shouldInlineLiteralParameters()); |
| setOptimizationLevel(other.getOptimizationLevel()); |
| setOptimizeDataflow(other.shouldOptimizeDataflow()); |
| setOrdinalizeEnums(other.shouldOrdinalizeEnums()); |
| setOutput(other.getOutput()); |
| setRemoveDuplicateFunctions(other.shouldRemoveDuplicateFunctions()); |
| setRunAsyncEnabled(other.isRunAsyncEnabled()); |
| setSoycEnabled(other.isSoycEnabled()); |
| setSoycExtra(other.isSoycExtra()); |
| setJsonSoycEnabled(other.isJsonSoycEnabled()); |
| setSoycHtmlDisabled(other.isSoycHtmlDisabled()); |
| setStrict(other.isStrict()); |
| setSourceLevel(other.getSourceLevel()); |
| setNamespace(other.getNamespace()); |
| setGenerateJsInteropExports(other.shouldGenerateJsInteropExports()); |
| jsInteropExportFilter.addAll(other.getJsInteropExportFilter()); |
| setUseDetailedTypeIds(other.useDetailedTypeIds()); |
| setMethodNameDisplayMode(other.getMethodNameDisplayMode()); |
| setClosureCompilerFormatEnabled(other.isClosureCompilerFormatEnabled()); |
| } |
| |
| @Override |
| public int getFragmentCount() { |
| return fragmentCount; |
| } |
| |
| @Override |
| public int getFragmentsMerge() { |
| return fragmentsMerge; |
| } |
| |
| @Override |
| public com.google.gwt.dev.util.arg.OptionMethodNameDisplayMode.Mode getMethodNameDisplayMode() { |
| return methodNameDisplayMode; |
| } |
| @Override |
| public JsNamespaceOption getNamespace() { |
| return namespace; |
| } |
| |
| @Override |
| public int getOptimizationLevel() { |
| return optimizationLevel; |
| } |
| |
| @Override |
| public JsOutputOption getOutput() { |
| return output; |
| } |
| |
| @Override |
| public SourceLevel getSourceLevel() { |
| return sourceLevel; |
| } |
| |
| @Override |
| public boolean isClassMetadataDisabled() { |
| return disableClassMetadata; |
| } |
| |
| @Override |
| public boolean isCompilerMetricsEnabled() { |
| return compilerMetricsEnabled; |
| } |
| |
| public boolean isDraftCompile() { |
| return optimizationLevel == OptionOptimize.OPTIMIZE_LEVEL_DRAFT; |
| } |
| |
| @Override |
| public boolean isEnableAssertions() { |
| return enableAssertions; |
| } |
| |
| @Override |
| public boolean isJsonSoycEnabled() { |
| return jsonSoycEnabled; |
| } |
| |
| @Override |
| public boolean isRunAsyncEnabled() { |
| return runAsyncEnabled; |
| } |
| |
| @Override |
| public boolean isSoycEnabled() { |
| return soycEnabled; |
| } |
| |
| @Override |
| public boolean isSoycExtra() { |
| return soycExtra; |
| } |
| |
| @Override |
| public boolean isSoycHtmlDisabled() { |
| return soycHtmlDisabled; |
| } |
| |
| @Override |
| public boolean isStrict() { |
| return strict; |
| } |
| |
| @Override |
| public void setAddRuntimeChecks(boolean enabled) { |
| addRuntimeChecks = enabled; |
| } |
| |
| @Override |
| public void setClassMetadataDisabled(boolean disabled) { |
| disableClassMetadata = disabled; |
| } |
| |
| @Override |
| public void setClusterSimilarFunctions(boolean enabled) { |
| clusterSimilarFunctions = enabled; |
| } |
| |
| @Override |
| public void setIncrementalCompileEnabled(boolean enabled) { |
| incrementalCompile = enabled; |
| } |
| |
| @Override |
| public void setCompilerMetricsEnabled(boolean enabled) { |
| compilerMetricsEnabled = enabled; |
| } |
| |
| @Override |
| public void setEnableAssertions(boolean enabled) { |
| enableAssertions = enabled; |
| } |
| |
| @Override |
| public void setFragmentCount(int numFragments) { |
| this.fragmentCount = numFragments; |
| } |
| |
| @Override |
| public void setFragmentsMerge(int numFragments) { |
| this.fragmentsMerge = numFragments; |
| } |
| |
| @Override |
| public void setInlineLiteralParameters(boolean enabled) { |
| inlineLiteralParameters = enabled; |
| } |
| |
| @Override |
| public void setJsonSoycEnabled(boolean enabled) { |
| jsonSoycEnabled = enabled; |
| } |
| |
| @Override |
| public void setMethodNameDisplayMode( |
| com.google.gwt.dev.util.arg.OptionMethodNameDisplayMode.Mode methodNameDisplayMode) { |
| this.methodNameDisplayMode = methodNameDisplayMode; |
| } |
| |
| @Override |
| public void setNamespace(JsNamespaceOption newValue) { |
| namespace = newValue; |
| } |
| |
| @Override |
| public void setOptimizationLevel(int level) { |
| optimizationLevel = level; |
| } |
| |
| @Override |
| public void setOptimizeDataflow(boolean enabled) { |
| optimizeDataflow = enabled; |
| } |
| |
| @Override |
| public void setOrdinalizeEnums(boolean enabled) { |
| ordinalizeEnums = enabled; |
| } |
| |
| @Override |
| public void setOutput(JsOutputOption output) { |
| this.output = output; |
| } |
| |
| @Override |
| public void setRemoveDuplicateFunctions(boolean enabled) { |
| removeDuplicateFunctions = enabled; |
| } |
| |
| @Override |
| public void setRunAsyncEnabled(boolean enabled) { |
| runAsyncEnabled = enabled; |
| } |
| |
| @Override |
| public void setSourceLevel(SourceLevel sourceLevel) { |
| this.sourceLevel = sourceLevel; |
| } |
| |
| @Override |
| public void setSoycEnabled(boolean enabled) { |
| soycEnabled = enabled; |
| } |
| |
| @Override |
| public void setSoycExtra(boolean enabled) { |
| soycExtra = enabled; |
| } |
| |
| @Override |
| public void setSoycHtmlDisabled(boolean disabled) { |
| soycHtmlDisabled = disabled; |
| } |
| |
| @Override |
| public void setStrict(boolean enabled) { |
| strict = enabled; |
| } |
| |
| @Override |
| public void setUseDetailedTypeIds(boolean enabled) { |
| useDetailedTypeIds = enabled; |
| } |
| |
| @Override |
| public boolean shouldAddRuntimeChecks() { |
| return addRuntimeChecks; |
| } |
| |
| @Override |
| public boolean shouldClusterSimilarFunctions() { |
| return clusterSimilarFunctions; |
| } |
| |
| @Override |
| public boolean isIncrementalCompileEnabled() { |
| return incrementalCompile; |
| } |
| |
| @Override |
| public boolean shouldInlineLiteralParameters() { |
| return inlineLiteralParameters; |
| } |
| |
| @Override |
| public boolean shouldJDTInlineCompileTimeConstants() { |
| return !isIncrementalCompileEnabled(); |
| } |
| |
| @Override |
| public boolean shouldOptimizeDataflow() { |
| return optimizeDataflow; |
| } |
| |
| @Override |
| public boolean shouldOrdinalizeEnums() { |
| return ordinalizeEnums; |
| } |
| |
| @Override |
| public boolean shouldRemoveDuplicateFunctions() { |
| return removeDuplicateFunctions; |
| } |
| |
| @Override |
| public boolean shouldGenerateJsInteropExports() { |
| return generateJsInteropExports; |
| } |
| |
| @Override |
| public void setGenerateJsInteropExports(boolean generateExports) { |
| generateJsInteropExports = generateExports; |
| } |
| |
| @Override |
| public WhitelistRegexFilter getJsInteropExportFilter() { |
| return jsInteropExportFilter; |
| } |
| |
| @Override |
| public boolean useDetailedTypeIds() { |
| return useDetailedTypeIds; |
| } |
| |
| @Override |
| public boolean isClosureCompilerFormatEnabled() { |
| return closureFormatEnabled; |
| } |
| |
| @Override |
| public void setClosureCompilerFormatEnabled(boolean enabled) { |
| closureFormatEnabled = enabled; |
| } |
| } |