http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dff3a518/flex-compiler-oem/src/flex2/tools/oem/internal/ConfigurationConstants.java
----------------------------------------------------------------------
diff --git 
a/flex-compiler-oem/src/flex2/tools/oem/internal/ConfigurationConstants.java 
b/flex-compiler-oem/src/flex2/tools/oem/internal/ConfigurationConstants.java
new file mode 100644
index 0000000..1d59834
--- /dev/null
+++ b/flex-compiler-oem/src/flex2/tools/oem/internal/ConfigurationConstants.java
@@ -0,0 +1,141 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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 flex2.tools.oem.internal;
+
+/**
+ * Contains constants for all the configuration options.
+ *
+ * @version 2.0.1
+ * @author Clement Wong
+ */
+interface ConfigurationConstants
+{
+    String USE_NETWORK                                          = 
"--use-network";
+    String RUNTIME_SHARED_LIBRARIES                             = 
"--runtime-shared-libraries";
+    String RAW_METADATA                                         = 
"--raw-metadata";
+    String PROJECTOR                                            = 
"--projector";
+    String METADATA_PUBLISHER                                   = 
"--metadata.publisher";
+    String METADATA_LANGUAGE                                    = 
"--metadata.language";
+    String METADATA_LOCALIZED_TITLE                             = 
"--metadata.localized-title";
+    String METADATA_LOCALIZED_DESCRIPTION                       = 
"--metadata.localized-description";
+    String METADATA_DATE                                        = 
"--metadata.date";
+    String METADATA_CREATOR                                     = 
"--metadata.creator";
+    String METADATA_CONTRIBUTOR                                 = 
"--metadata.contributor";
+    String LINK_REPORT                                          = 
"--link-report";
+    String SIZE_REPORT                                          = 
"--size-report";
+    String LICENSES_LICENSE                                     = 
"--licenses.license";
+    String INCLUDES                                             = "--includes";
+    String INCLUDE_RESOURCE_BUNDLES                             = 
"--include-resource-bundles";
+    String FRAMES_FRAME                                         = 
"--frames.frame";
+    String LOAD_EXTERNS                                         = 
"--load-externs";
+    String LOAD_CONFIG                                          = 
"--load-config";
+    String EXTERNS                                              = "--externs";
+    String DEFAULT_SIZE                                         = 
"--default-size";
+    String DEFAULT_SCRIPT_LIMITS                                = 
"--default-script-limits";
+    String DEFAULT_FRAME_RATE                                   = 
"--default-frame-rate";
+    String DEFAULT_BACKGROUND_COLOR                             = 
"--default-background-color";
+    String DEBUG_PASSWORD                                       = 
"--debug-password";
+    String SWF_VERSION                                          = 
"--swf-version";
+    String COMPILER_WARN_XML_CLASS_HAS_CHANGED                  = 
"--compiler.warn-xml-class-has-changed";
+    String COMPILER_WARN_UNLIKELY_FUNCTION_VALUE                = 
"--compiler.warn-unlikely-function-value";
+    String COMPILER_WARN_SLOW_TEXT_FIELD_ADDITION               = 
"--compiler.warn-slow-text-field-addition";
+    String COMPILER_WARN_SCOPING_CHANGE_IN_THIS                 = 
"--compiler.warn-scoping-change-in-this";
+    String COMPILER_WARN_NUMBER_FROM_STRING_CHANGES             = 
"--compiler.warn-number-from-string-changes";
+    String COMPILER_WARN_NO_TYPE_DECL                           = 
"--compiler.warn-no-type-decl";
+    String COMPILER_WARN_NO_EXPLICIT_SUPER_CALL_IN_CONSTRUCTOR  = 
"--compiler.warn-no-explicit-super-call-in-constructor";
+    String COMPILER_WARN_NO_CONSTRUCTOR                         = 
"--compiler.warn-no-constructor";
+    String COMPILER_WARN_NEGATIVE_UINT_LITERAL                  = 
"--compiler.warn-negative-uint-literal";
+    String COMPILER_WARN_MISSING_NAMESPACE_DECL                 = 
"--compiler.warn-missing-namespace-decl";
+    String COMPILER_WARN_LEVEL_NOT_SUPPORTED                    = 
"--compiler.warn-level-not-supported";
+    String COMPILER_WARN_INTERNAL_ERROR                         = 
"--compiler.warn-internal-error";
+    String COMPILER_WARN_INSTANCE_OF_CHANGES                    = 
"--compiler.warn-instance-of-changes";
+    String COMPILER_WARN_IMPORT_HIDES_CLASS                     = 
"--compiler.warn-import-hides-class";
+    String COMPILER_WARN_FOR_VAR_IN_CHANGES                     = 
"--compiler.warn-for-var-in-changes";
+    String COMPILER_WARN_DUPLICATE_VARIABLE_DEF                 = 
"--compiler.warn-duplicate-variable-def";
+    String COMPILER_WARN_DUPLICATE_ARGUMENT_NAMES               = 
"--compiler.warn-duplicate-argument-names";
+    String COMPILER_WARN_DEPRECATED_PROPERTY_ERROR              = 
"--compiler.warn-deprecated-property-error";
+    String COMPILER_WARN_DEPRECATED_FUNCTION_ERROR              = 
"--compiler.warn-deprecated-function-error";
+    String COMPILER_WARN_DEPRECATED_EVENT_HANDLER_ERROR         = 
"--compiler.warn-deprecated-event-handler-error";
+    String COMPILER_WARN_CONSTRUCTOR_RETURNS_VALUE              = 
"--compiler.warn-constructor-returns-value";
+    String COMPILER_WARN_CONST_NOT_INITIALIZED                  = 
"--compiler.warn-const-not-initialized";
+    String COMPILER_WARN_CLASS_IS_SEALED                        = 
"--compiler.warn-class-is-sealed";
+    String COMPILER_WARN_CHANGES_IN_RESOLVE                     = 
"--compiler.warn-changes-in-resolve";
+    String COMPILER_WARN_BOOLEAN_CONSTRUCTOR_WITH_NO_ARGS       = 
"--compiler.warn-boolean-constructor-with-no-args";
+    String COMPILER_WARN_BAD_UNDEFINED_COMPARISON               = 
"--compiler.warn-bad-undefined-comparison";
+    String COMPILER_WARN_BAD_NULL_COMPARISON                    = 
"--compiler.warn-bad-null-comparison";
+    String COMPILER_WARN_BAD_NULL_ASSIGNMENT                    = 
"--compiler.warn-bad-null-assignment";
+    String COMPILER_WARN_BAD_NAN_COMPARISON                     = 
"--compiler.warn-bad-nan-comparison";
+    String COMPILER_WARN_BAD_ES3_TYPE_PROP                      = 
"--compiler.warn-bad-es3-type-prop";
+    String COMPILER_WARN_BAD_ES3_TYPE_METHOD                    = 
"--compiler.warn-bad-es3-type-method";
+    String COMPILER_WARN_BAD_DATE_CAST                          = 
"--compiler.warn-bad-date-cast";
+    String COMPILER_WARN_BAD_BOOL_ASSIGNMENT                    = 
"--compiler.warn-bad-bool-assignment";
+    String COMPILER_WARN_BAD_ARRAY_CAST                         = 
"--compiler.warn-bad-array-cast";
+    String COMPILER_WARN_ASSIGNMENT_WITHIN_CONDITIONAL          = 
"--compiler.warn-assignment-within-conditional";
+    String COMPILER_WARN_ARRAY_TOSTRING_CHANGES                 = 
"--compiler.warn-array-tostring-changes";
+    String COMPILER_VERBOSE_STACKTRACES                         = 
"--compiler.verbose-stacktraces";
+    String COMPILER_USE_RESOURCE_BUNDLE_METADATA                = 
"--compiler.use-resource-bundle-metadata";
+    String COMPILER_THEME                                       = 
"--compiler.theme";
+    String COMPILER_STRICT                                      = 
"--compiler.strict";
+    String COMPILER_SOURCE_PATH                                 = 
"--compiler.source-path";
+    String COMPILER_SHOW_UNUSED_TYPE_SELECTOR_WARNINGS          = 
"--compiler.show-unused-type-selector-warnings";
+    String COMPILER_SHOW_DEPRECATION_WARNINGS                   = 
"--compiler.show-deprecation-warnings";
+    String COMPILER_SHOW_SHADOWED_DEVICE_FONT_WARNINGS          = 
"--compiler.show-shadowed-device-font-warnings";
+    String COMPILER_SHOW_BINDING_WARNINGS                       = 
"--compiler.show-binding-warnings";
+    String COMPILER_SHOW_ACTIONSCRIPT_WARNINGS                  = 
"--compiler.show-actionscript-warnings";
+    String COMPILER_SERVICES                                    = 
"--compiler.services";
+    String COMPILER_OPTIMIZE                                    = 
"--compiler.optimize";
+    String COMPILER_NAMESPACES_NAMESPACE                        = 
"--compiler.namespaces.namespace";
+    String COMPILER_MOBILE                                      = 
"--compiler.mobile";
+    String COMPILER_LOCALE                                      = 
"--compiler.locale";
+    String COMPILER_LIBRARY_PATH                                = 
"--compiler.library-path";
+    String COMPILER_INCLUDE_LIBRARIES                           = 
"--compiler.include-libraries";
+    String COMPILER_KEEP_GENERATED_ACTIONSCRIPT                 = 
"--compiler.keep-generated-actionscript";
+    String COMPILER_KEEP_AS3_METADATA                           = 
"--compiler.keep-as3-metadata";
+    String COMPILER_KEEP_ALL_TYPE_SELECTORS                     = 
"--compiler.keep-all-type-selectors";
+    String COMPILER_HEADLESS_SERVER                             = 
"--compiler.headless-server";
+    String COMPILER_FONTS_MAX_GLYPHS_PER_FACE                   = 
"--compiler.fonts.max-glyphs-per-face";
+    String COMPILER_FONTS_MAX_CACHED_FONTS                      = 
"--compiler.fonts.max-cached-fonts";
+    String COMPILER_FONTS_MANAGERS                              = 
"--compiler.fonts.managers";
+    String COMPILER_FONTS_LOCAL_FONT_PATHS                      = 
"--compiler.fonts.local-font-paths";
+    String COMPILER_FONTS_LOCAL_FONTS_SNAPSHOT                  = 
"--compiler.fonts.local-fonts-snapshot";
+    String COMPILER_FONTS_LANGUAGES_LANGUAGE_RANGE              = 
"--compiler.fonts.languages.language-range";
+    String COMPILER_FONTS_FLASH_TYPE                            = 
"--compiler.fonts.flash-type";
+    String COMPILER_FONTS_ADVANCED_ANTI_ALIASING                = 
"--compiler.fonts.advanced-anti-aliasing";
+    String COMPILER_EXTERNAL_LIBRARY_PATH                       = 
"--compiler.external-library-path";
+    String COMPILER_ES                                          = 
"--compiler.es";
+    String COMPILER_DEFAULTS_CSS_URL                            = 
"--compiler.defaults-css-url";
+    String COMPILER_DEBUG                                       = 
"--compiler.debug";
+    String COMPILER_COMPRESS                                    = 
"--compiler.compress";
+    String COMPILER_CONTEXT_ROOT                                = 
"--compiler.context-root";
+    String COMPILER_AS3                                         = 
"--compiler.as3";
+    String COMPILER_ALLOW_SOURCE_PATH_OVERLAP                   = 
"--compiler.allow-source-path-overlap";
+    String COMPILER_ACTIONSCRIPT_FILE_ENCODING                  = 
"--compiler.actionscript-file-encoding";
+    String COMPILER_ACCESSIBLE                                  = 
"--compiler.accessible";
+    String TARGET_PLAYER                                        = 
"--target-player";
+    String RUNTIME_SHARED_LIBRARY_PATH                          = 
"--runtime-shared-library-path";
+    String VERIFY_DIGESTS                                       = 
"--verify-digests";
+    String COMPILER_COMPUTE_DIGEST                              = 
"--compute-digest";
+    String COMPILER_DEFINE                                      = 
"--compiler.define";
+    String COMPILER_MXML_COMPATIBILITY                                         
        = "--compiler.mxml.compatibility-version";
+    String COMPILER_EXTENSIONS                                  = 
"--compiler.extensions.extension";
+    String REMOVE_UNUSED_RSLS                                   = 
"--remove-unused-rsls";
+    String RUNTIME_SHARED_LIBRARY_SETTINGS_FORCE_RSLS           = 
"--runtime-shared-library-settings.force-rsls";
+    String RUNTIME_SHARED_LIBRARY_SETTINGS_APPLICATION_DOMAIN  = 
"--runtime-shared-library-settings.application-domain";
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dff3a518/flex-compiler-oem/src/flex2/tools/oem/internal/GenericMessage.java
----------------------------------------------------------------------
diff --git a/flex-compiler-oem/src/flex2/tools/oem/internal/GenericMessage.java 
b/flex-compiler-oem/src/flex2/tools/oem/internal/GenericMessage.java
new file mode 100644
index 0000000..738eeb9
--- /dev/null
+++ b/flex-compiler-oem/src/flex2/tools/oem/internal/GenericMessage.java
@@ -0,0 +1,73 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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 flex2.tools.oem.internal;
+
+import flex2.tools.oem.Message;
+
+/**
+ * A generic implementation of Message.
+ *
+ * @version 2.0.1
+ * @author Clement Wong
+ */
+class GenericMessage implements Message
+{
+       GenericMessage(Message message)
+       {
+               this(message.getLevel(), message.getPath(), message.getLine(), 
message.getColumn(), message.toString());
+       }
+       
+       GenericMessage(String level, String path, int line, int col, String 
message)
+       {
+               this.level = level;
+               this.path = path;
+               this.line = line;
+               this.col = col;
+               this.message = message;
+       }
+       
+       private String level, path, message;
+       private int line, col;
+       
+       public int getColumn()
+       {
+               return col;
+       }
+
+       public String getLevel()
+       {
+               return level;
+       }
+
+       public int getLine()
+       {
+               return line;
+       }
+
+       public String getPath()
+       {
+               return path;
+       }
+       
+       public String toString()
+       {
+               return message;
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dff3a518/flex-compiler-oem/src/flex2/tools/oem/internal/LibraryCompilerConfiguration.java
----------------------------------------------------------------------
diff --git 
a/flex-compiler-oem/src/flex2/tools/oem/internal/LibraryCompilerConfiguration.java
 
b/flex-compiler-oem/src/flex2/tools/oem/internal/LibraryCompilerConfiguration.java
new file mode 100644
index 0000000..6062445
--- /dev/null
+++ 
b/flex-compiler-oem/src/flex2/tools/oem/internal/LibraryCompilerConfiguration.java
@@ -0,0 +1,132 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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 flex2.tools.oem.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import flex2.compiler.common.Configuration;
+import flex2.compiler.config.ConfigurationBuffer;
+import flex2.compiler.config.ConfigurationException;
+import flex2.compiler.config.ConfigurationInfo;
+import flex2.compiler.config.ConfigurationValue;
+import flex2.tools.CompcConfiguration;
+
+/**
+ * A configuration that extends CompcConfiguration by adding options
+ * for -loadConfig and -compute-digest.
+ *
+ * @version 2.0.1
+ * @author Clement Wong
+ */
+public class LibraryCompilerConfiguration extends CompcConfiguration
+{
+    static
+    {
+        outputRequired = false;
+    }
+
+       public static Map<String, String> getAliases()
+    {
+        Map<String, String> map = new HashMap<String, String>();
+           map.putAll(Configuration.getAliases());
+           map.remove("o");
+               return map;
+    }
+
+    protected void validateSwcInputs() throws ConfigurationException
+    {
+        // Skip validating the inputs, because they are provided via the OEM 
API.
+    }
+
+    //
+    // 'generate-link-report' option
+    //
+    
+       private boolean generateLinkReport;
+       
+       public boolean generateLinkReport()
+       {
+               return generateLinkReport || super.generateLinkReport();
+       }
+
+       public void keepLinkReport(boolean b)
+       {
+               generateLinkReport = b;
+       }
+       
+    //
+    // 'generate-size-report' option
+    //
+    
+       private boolean generateSizeReport;
+       
+       public boolean generateSizeReport()
+       {
+               return generateSizeReport || super.generateSizeReport();
+       }
+
+       public void keepSizeReport(boolean b)
+       {
+               generateSizeReport = b;
+       }
+
+    //
+    // 'load-config' option
+    //
+    
+    // dummy, ignored - pulled out of the buffer
+    public void cfgLoadConfig(ConfigurationValue cv, String filename) throws 
ConfigurationException
+    {
+    }
+
+    public static ConfigurationInfo getLoadConfigInfo()
+    {
+        return new ConfigurationInfo( 1, "filename" )
+        {
+            public boolean allowMultiple()
+            {
+                return true;
+            }
+        };
+    }
+    
+       //
+       // compute-digest option
+       //
+       
+       private boolean computeDigest = true;
+       
+       public boolean getComputeDigest()
+       {
+               return computeDigest;
+       }
+       
+       /**
+        * compute-digest option
+        * 
+        * @param cv
+        * @param b
+        */
+       public void cfgComputeDigest(ConfigurationValue cv, boolean b)
+       {
+               computeDigest = b;
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dff3a518/flex-compiler-oem/src/flex2/tools/oem/internal/LinkerConfiguration.java
----------------------------------------------------------------------
diff --git 
a/flex-compiler-oem/src/flex2/tools/oem/internal/LinkerConfiguration.java 
b/flex-compiler-oem/src/flex2/tools/oem/internal/LinkerConfiguration.java
new file mode 100644
index 0000000..6732574
--- /dev/null
+++ b/flex-compiler-oem/src/flex2/tools/oem/internal/LinkerConfiguration.java
@@ -0,0 +1,470 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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 flex2.tools.oem.internal;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+
+import flex2.compiler.common.Configuration;
+import flex2.compiler.common.FramesConfiguration.FrameInfo;
+import flex2.compiler.config.ConfigurationBuffer;
+import flex2.compiler.config.ConfigurationException;
+import flex2.tools.ToolsConfiguration;
+
+/**
+ * A configuration that extends ToolsConfiguration by adding link
+ * specific options.
+ *
+ * @version 2.0.1
+ * @author Clement Wong
+ */
+/*
+ * TODO Jono: this should really *implement* flex2.linker.Configuration
+ * and not extend ToolsConfiguration to keep us honest about settings
+ * required for linking -- options that were not part of the original
+ * config are currently ignored and their values instead come from the
+ * inherited ToolsConfiguration, and are the default values (rather
+ * than the ones coming from original).
+ *
+ * Example: I forgot to implement getTargetPlayerMajorVersion() here,
+ * and it instead came from super, so the value set on the command line
+ * was totally ignored.
+ */
+public class LinkerConfiguration extends ToolsConfiguration implements 
flex2.linker.LinkerConfiguration
+{
+       public static Map<String, String> getAliases()
+    {
+        Map<String, String> map = new HashMap<String, String>();
+           map.putAll(Configuration.getAliases());
+           map.remove("o");
+               return map;
+    }
+
+    public void validate( ConfigurationBuffer cfgbuf ) throws 
ConfigurationException
+    {
+       super.validate(cfgbuf);
+    }
+    
+    private flex2.linker.LinkerConfiguration original;
+    private Set args;
+    
+    public void setOriginalConfiguration(flex2.linker.LinkerConfiguration 
original, Set args, Set<String> includes, Set<String> excludes)
+    {
+       this.original = original;
+       this.args = args;
+
+       Set s = getIncludes();
+       addIncludes(s == null || s.size() == 0 ? original.getIncludes() : 
includes);
+       s = getExterns();
+       addExterns(s == null || s.size() == 0 ? original.getExterns() : 
excludes);
+    }
+
+    // flex2.linker.Configuration methods...
+
+       public int backgroundColor()
+       {
+               if 
(args.contains(ConfigurationConstants.DEFAULT_BACKGROUND_COLOR))
+               {
+                       return super.backgroundColor();
+               }
+               else
+               {
+                       return original.backgroundColor();
+               }
+       }
+
+       public String debugPassword()
+       {
+               if (args.contains(ConfigurationConstants.DEBUG_PASSWORD))
+               {
+                       return super.debugPassword();
+               }
+               else
+               {
+                       return original.debugPassword();
+               }
+       }
+
+       public int defaultHeight()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_SIZE))
+               {
+                       return super.defaultHeight();
+               }
+               else
+               {
+                       return original.defaultHeight();
+               }
+       }
+
+       public int defaultWidth()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_SIZE))
+               {
+                       return super.defaultWidth();
+               }
+               else
+               {
+                       return original.defaultWidth();
+               }
+       }
+
+       public boolean debug()
+       {
+               if (args.contains(ConfigurationConstants.COMPILER_DEBUG))
+               {
+                       return super.debug();
+               }
+               else
+               {
+                       return original.debug();
+               }
+       }
+
+       public Set<String> getExterns()
+       {
+               return super.getExterns();
+       }
+
+       public List<FrameInfo> getFrameList()
+       {
+               if (args.contains(ConfigurationConstants.FRAMES_FRAME))
+               {
+                       return super.getFrameList();
+               }
+               else
+               {
+                       return original.getFrameList();
+               }
+       }
+
+       public int getFrameRate()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_FRAME_RATE))
+               {
+                       return super.getFrameRate();
+               }
+               else
+               {
+                       return original.getFrameRate();
+               }
+       }
+
+       public Set<String> getIncludes()
+       {
+               return super.getIncludes();
+       }
+
+       public String getLinkReportFileName()
+       {
+               return null;
+       }
+
+       public String getMainDefinition()
+       {
+               return original.getMainDefinition();
+       }
+
+       public String getMetadata()
+       {
+               if (args.contains(ConfigurationConstants.METADATA_CONTRIBUTOR) 
||
+                       args.contains(ConfigurationConstants.METADATA_CREATOR) 
||
+                       args.contains(ConfigurationConstants.METADATA_DATE) ||
+                       args.contains(ConfigurationConstants.METADATA_LANGUAGE) 
||
+                       
args.contains(ConfigurationConstants.METADATA_LOCALIZED_DESCRIPTION) ||
+                       
args.contains(ConfigurationConstants.METADATA_LOCALIZED_TITLE) ||
+                       
args.contains(ConfigurationConstants.METADATA_PUBLISHER) ||
+                       args.contains(ConfigurationConstants.RAW_METADATA))
+               {
+                       return super.getMetadata();
+               }
+               else
+               {
+                       return original.getMetadata();
+               }
+       }
+
+       public String getRBListFileName()
+       {
+               return null;
+       }
+
+       public SortedSet<String> getResourceBundles()
+       {
+               return original.getResourceBundles();
+       }
+
+       public String getRootClassName()
+       {
+               return original.getRootClassName();
+       }
+
+       public int getScriptRecursionLimit()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_SCRIPT_LIMITS))
+               {
+                       return super.getScriptRecursionLimit();
+               }
+               else
+               {
+                       return original.getScriptRecursionLimit();
+               }
+       }
+
+       public int getScriptTimeLimit()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_SCRIPT_LIMITS))
+               {
+                       return super.getScriptTimeLimit();
+               }
+               else
+               {
+                       return original.getScriptTimeLimit();
+               }
+       }
+
+       public Set<String> getUnresolved()
+       {
+               return original.getUnresolved();
+       }
+
+       public String height()
+       {
+               return original.height();
+       }
+
+       public String heightPercent()
+       {
+               return original.heightPercent();
+       }
+
+       public boolean verboseStacktraces()
+       {
+               if (args.contains(ConfigurationConstants.COMPILER_DEBUG) ||
+                       
args.contains(ConfigurationConstants.COMPILER_VERBOSE_STACKTRACES))
+               {
+                       return super.verboseStacktraces();
+               }
+               else
+               {
+                       return original.verboseStacktraces();
+               }
+       }
+
+       public boolean lazyInit()
+       {
+               return original.lazyInit();
+       }
+
+       public boolean optimize()
+       {
+               if (args.contains(ConfigurationConstants.COMPILER_OPTIMIZE))
+               {
+                       return super.optimize();
+               }
+               else
+               {
+                       return original.optimize();
+               }
+       }
+
+       public String pageTitle()
+       {
+               return original.pageTitle();
+       }
+
+       public boolean scriptLimitsSet()
+       {
+               if (args.contains(ConfigurationConstants.DEFAULT_SCRIPT_LIMITS))
+               {
+                       return super.scriptLimitsSet();
+               }
+               else
+               {
+                       return original.scriptLimitsSet();
+               }
+       }
+
+    public int getSwfVersion()
+    {
+        if (args.contains(ConfigurationConstants.SWF_VERSION))
+        {
+            return super.getSwfVersion();
+        }
+        else
+        {
+            return original.getSwfVersion();
+        }          
+    }
+
+       public void setMainDefinition(String mainDefinition)
+       {
+               original.setMainDefinition(mainDefinition);
+       }
+
+       public void setRootClassName(String rootClassName)
+       {
+               original.setRootClassName(rootClassName);
+       }
+
+       public boolean useNetwork()
+       {
+               if (args.contains(ConfigurationConstants.USE_NETWORK))
+               {
+                       return super.useNetwork();
+               }
+               else
+               {
+                       return original.useNetwork();
+               }
+       }
+
+       public String width()
+       {
+               return original.width();
+       }
+
+       public String widthPercent()
+       {
+               return original.widthPercent();
+       }
+       
+       private boolean generateLinkReport;
+       
+       public void keepLinkReport(boolean b)
+       {
+               generateLinkReport = b;
+       }
+       
+       public boolean generateLinkReport()
+       {
+               return generateLinkReport || super.generateLinkReport();
+       }
+       
+       private boolean generateSizeReport;
+       
+       public void keepSizeReport(boolean b)
+       {
+               generateSizeReport = b;
+       }
+       
+       public boolean generateSizeReport()
+       {
+               return generateSizeReport || super.generateSizeReport();
+       }
+       
+       public String[] getMetadataToKeep()
+       {
+               if 
(args.contains(ConfigurationConstants.COMPILER_KEEP_AS3_METADATA))
+               {
+                       return super.getMetadataToKeep();
+               }
+               else
+               {
+                       return original.getMetadataToKeep();
+               }
+       }
+       
+       public boolean getComputeDigest()
+       {
+               if 
(args.contains(ConfigurationConstants.COMPILER_COMPUTE_DIGEST))
+               {
+                       return super.getComputeDigest();
+               }
+               else
+               {
+                       return original.getComputeDigest();
+               }
+       }
+
+    public String getCompatibilityVersionString()
+    {
+        if (args.contains(ConfigurationConstants.COMPILER_MXML_COMPATIBILITY))
+               {
+                       return super.getCompatibilityVersionString();
+               }
+               else
+               {
+            return original.getCompatibilityVersionString();
+               }
+    }
+
+    
+    public int getCompatibilityVersion()
+    {
+        if (args.contains(ConfigurationConstants.COMPILER_MXML_COMPATIBILITY))
+               {
+                       return super.getCompatibilityVersion();
+               }
+               else
+               {
+            return original.getCompatibilityVersion();
+               }
+       }
+
+    public String getOutput()
+    {
+        return null;
+    }
+
+    public String getTargetFile()
+    {
+        return null;
+    }
+
+       public int getTargetPlayerMajorVersion()
+       {
+        if (args.contains(ConfigurationConstants.TARGET_PLAYER))
+               {
+                       return super.getTargetPlayerMajorVersion();
+               }
+               else
+               {
+            return original.getTargetPlayerMajorVersion();
+               }
+       }
+       
+       public int getTargetPlayerMinorVersion()
+       {
+        if (args.contains(ConfigurationConstants.TARGET_PLAYER))
+               {
+                       return super.getTargetPlayerMinorVersion();
+               }
+               else
+               {
+            return original.getTargetPlayerMinorVersion();
+               }
+       }
+       
+       public int getTargetPlayerRevision()
+       {
+        if (args.contains(ConfigurationConstants.TARGET_PLAYER))
+               {
+                       return super.getTargetPlayerRevision();
+               }
+               else
+               {
+            return original.getTargetPlayerRevision();
+               }
+       }
+}

Reply via email to