blob: b8a38e11427b93f62aba5217de21fe51933aba83 [file] [log] [blame]
/*
* Copyright 2011 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;
import com.google.gwt.dev.jjs.JJSOptions;
import com.google.gwt.dev.jjs.JJSOptionsImpl;
import com.google.gwt.dev.jjs.JsOutputOption;
import com.google.gwt.dev.js.JsNamespaceOption;
import com.google.gwt.dev.util.arg.OptionMethodNameDisplayMode;
import com.google.gwt.dev.util.arg.SourceLevel;
import com.google.gwt.thirdparty.guava.common.collect.LinkedListMultimap;
import com.google.gwt.thirdparty.guava.common.collect.ListMultimap;
import com.google.gwt.util.regexfilter.WhitelistRegexFilter;
import java.io.File;
/**
* Concrete class to implement both precompile and compile task options.
*/
public class PrecompileTaskOptionsImpl extends CompileTaskOptionsImpl
implements PrecompileTaskOptions {
private boolean enableGeneratingOnShards = true;
private File genDir;
private final JJSOptionsImpl jjsOptions = new JJSOptionsImpl();
private boolean saveSource;
private String sourceMapFilePrefix;
private boolean validateOnly;
private final ListMultimap<String, String> properties = LinkedListMultimap.create();
public PrecompileTaskOptionsImpl() {
}
public PrecompileTaskOptionsImpl(CompileTaskOptions other) {
copyFrom(other);
}
public PrecompileTaskOptionsImpl(JJSOptions other) {
copyFrom(other);
}
public PrecompileTaskOptionsImpl(PrecompileTaskOptions other) {
copyFrom(other);
}
public void copyFrom(JJSOptions other) {
jjsOptions.copyFrom(other);
}
public void copyFrom(PrecompileTaskOptions other) {
super.copyFrom(other);
jjsOptions.copyFrom(other);
setGenDir(other.getGenDir());
setSaveSource(other.shouldSaveSource());
setSourceMapFilePrefix(other.getSourceMapFilePrefix());
setValidateOnly(other.isValidateOnly());
setEnabledGeneratingOnShards(other.isEnabledGeneratingOnShards());
properties.putAll(other.getProperties());
}
@Override
public int getFragmentCount() {
return jjsOptions.getFragmentCount();
}
@Override
public int getFragmentsMerge() {
return jjsOptions.getFragmentsMerge();
}
@Override
public File getGenDir() {
return genDir;
}
@Override
public boolean shouldGenerateJsInteropExports() {
return jjsOptions.shouldGenerateJsInteropExports();
}
@Override
public WhitelistRegexFilter getJsInteropExportFilter() {
return jjsOptions.getJsInteropExportFilter();
}
@Override
public OptionMethodNameDisplayMode.Mode getMethodNameDisplayMode() {
return jjsOptions.getMethodNameDisplayMode();
}
@Override
public JsNamespaceOption getNamespace() {
return jjsOptions.getNamespace();
}
@Override
public int getOptimizationLevel() {
return jjsOptions.getOptimizationLevel();
}
@Override
public JsOutputOption getOutput() {
return jjsOptions.getOutput();
}
@Override
public ListMultimap<String, String> getProperties() {
return properties;
}
@Override
public SourceLevel getSourceLevel() {
return jjsOptions.getSourceLevel();
}
@Override
public String getSourceMapFilePrefix() {
return sourceMapFilePrefix;
}
@Override
public boolean isClassMetadataDisabled() {
return jjsOptions.isClassMetadataDisabled();
}
@Override
public boolean isCompilerMetricsEnabled() {
return jjsOptions.isCompilerMetricsEnabled();
}
public boolean isDraftCompile() {
return jjsOptions.isDraftCompile();
}
@Override
public boolean isEnableAssertions() {
return jjsOptions.isEnableAssertions();
}
@Override
public boolean isEnabledGeneratingOnShards() {
return enableGeneratingOnShards;
}
@Override
public boolean isIncrementalCompileEnabled() {
return jjsOptions.isIncrementalCompileEnabled();
}
@Override
public boolean isJsonSoycEnabled() {
return jjsOptions.isJsonSoycEnabled();
}
@Override
public boolean isRunAsyncEnabled() {
return jjsOptions.isRunAsyncEnabled();
}
@Override
public boolean isSoycEnabled() {
return jjsOptions.isSoycEnabled();
}
@Override
public boolean isSoycExtra() {
return jjsOptions.isSoycExtra();
}
@Override
public boolean isSoycHtmlDisabled() {
return jjsOptions.isSoycHtmlDisabled();
}
@Override
public boolean isStrict() {
return jjsOptions.isStrict();
}
@Override
public boolean isValidateOnly() {
return validateOnly;
}
@Override
public void setAddRuntimeChecks(boolean enabled) {
jjsOptions.setAddRuntimeChecks(enabled);
}
@Override
public void setClassMetadataDisabled(boolean disabled) {
jjsOptions.setClassMetadataDisabled(disabled);
}
@Override
public void setClusterSimilarFunctions(boolean enabled) {
jjsOptions.setClusterSimilarFunctions(enabled);
}
@Override
public void setCompilerMetricsEnabled(boolean enabled) {
jjsOptions.setCompilerMetricsEnabled(enabled);
}
@Override
public void setEnableAssertions(boolean enableAssertions) {
jjsOptions.setEnableAssertions(enableAssertions);
}
@Override
public void setEnabledGeneratingOnShards(boolean enabled) {
enableGeneratingOnShards = enabled;
}
@Override
public void setFragmentCount(int numFragments) {
jjsOptions.setFragmentCount(numFragments);
}
@Override
public void setFragmentsMerge(int numFragments) {
jjsOptions.setFragmentsMerge(numFragments);
}
@Override
public void setGenDir(File genDir) {
this.genDir = genDir;
}
@Override
public void setIncrementalCompileEnabled(boolean enabled) {
jjsOptions.setIncrementalCompileEnabled(enabled);
}
@Override
public void setInlineLiteralParameters(boolean enabled) {
jjsOptions.setInlineLiteralParameters(enabled);
}
@Override
public void setGenerateJsInteropExports(boolean generateExports) {
jjsOptions.setGenerateJsInteropExports(generateExports);
}
@Override
public void setJsonSoycEnabled(boolean enabled) {
jjsOptions.setJsonSoycEnabled(enabled);
}
@Override
public void setMethodNameDisplayMode(OptionMethodNameDisplayMode.Mode methodNameDisplayMode) {
jjsOptions.setMethodNameDisplayMode(methodNameDisplayMode);
}
@Override
public void setNamespace(JsNamespaceOption newValue) {
jjsOptions.setNamespace(newValue);
}
@Override
public void setOptimizationLevel(int level) {
jjsOptions.setOptimizationLevel(level);
}
@Override
public void setOptimizeDataflow(boolean enabled) {
jjsOptions.setOptimizeDataflow(enabled);
}
@Override
public void setOrdinalizeEnums(boolean enabled) {
jjsOptions.setOrdinalizeEnums(enabled);
}
@Override
public void setOutput(JsOutputOption output) {
jjsOptions.setOutput(output);
}
@Override
public void setRemoveDuplicateFunctions(boolean enabled) {
jjsOptions.setRemoveDuplicateFunctions(enabled);
}
@Override
public void setPropertyValues(String name, Iterable<String> values) {
properties.replaceValues(name, values);
}
@Override
public void setRunAsyncEnabled(boolean enabled) {
jjsOptions.setRunAsyncEnabled(enabled);
}
@Override
public void setSaveSource(boolean enabled) {
saveSource = enabled;
}
@Override
public void setSourceLevel(SourceLevel sourceLevel) {
jjsOptions.setSourceLevel(sourceLevel);
}
@Override
public void setSourceMapFilePrefix(String path) {
sourceMapFilePrefix = path;
}
@Override
public void setSoycEnabled(boolean enabled) {
jjsOptions.setSoycEnabled(enabled);
}
@Override
public void setSoycExtra(boolean soycExtra) {
jjsOptions.setSoycExtra(soycExtra);
}
@Override
public void setSoycHtmlDisabled(boolean disabled) {
jjsOptions.setSoycHtmlDisabled(disabled);
}
@Override
public void setStrict(boolean strict) {
jjsOptions.setStrict(strict);
}
@Override
public void setUseDetailedTypeIds(boolean detailed) {
jjsOptions.setUseDetailedTypeIds(detailed);
}
@Override
public void setValidateOnly(boolean validateOnly) {
this.validateOnly = validateOnly;
}
@Override
public boolean shouldAddRuntimeChecks() {
return jjsOptions.shouldAddRuntimeChecks();
}
@Override
public boolean shouldClusterSimilarFunctions() {
return jjsOptions.shouldClusterSimilarFunctions();
}
@Override
public boolean shouldInlineLiteralParameters() {
return jjsOptions.shouldInlineLiteralParameters();
}
@Override
public boolean shouldJDTInlineCompileTimeConstants() {
return jjsOptions.shouldJDTInlineCompileTimeConstants();
}
@Override
public boolean shouldOptimizeDataflow() {
return jjsOptions.shouldOptimizeDataflow();
}
@Override
public boolean shouldOrdinalizeEnums() {
return jjsOptions.shouldOrdinalizeEnums();
}
@Override
public boolean shouldRemoveDuplicateFunctions() {
return jjsOptions.shouldRemoveDuplicateFunctions();
}
@Override
public boolean shouldSaveSource() {
return saveSource;
}
@Override
public boolean useDetailedTypeIds() {
return jjsOptions.useDetailedTypeIds();
}
@Override
public boolean isClosureCompilerFormatEnabled() {
return jjsOptions.isClosureCompilerFormatEnabled();
}
@Override
public void setClosureCompilerFormatEnabled(boolean enabled) {
jjsOptions.setClosureCompilerFormatEnabled(enabled);
}
}