I'm still pretty far from convinced that we actually want this.

On Thu, Jul 30, 2009 at 8:44 PM, <[email protected]> wrote:

> Revision: 5849
> Author: [email protected]
> Date: Thu Jul 30 15:44:00 2009
> Log: Fix ModuleDefSchema changes that got dropped in an earlier merge.
>
> http://code.google.com/p/google-web-toolkit/source/detail?r=5849
>
> Modified:
>  /changes/jat/ihm/dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java
>
> =======================================
> ---
> /changes/jat/ihm/dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java
>     Wed Jul 29 15:12:22 2009
> +++
> /changes/jat/ihm/dev/core/src/com/google/gwt/dev/cfg/ModuleDefSchema.java
>     Thu Jul 30 15:44:00 2009
> @@ -55,6 +55,16 @@
>
>     protected final String __define_configuration_property_1_name = null;
>
> +    protected final String __binary_1_path = "";
> +
> +    protected final String __binary_2_includes = "";
> +
> +    protected final String __binary_3_excludes = "";
> +
> +    protected final String __binary_4_defaultexcludes = "yes";
> +
> +    protected final String __binary_5_casesensitive = "true";
> +
>     protected final String
> __define_configuration_property_2_is_multi_valued = null;
>
>     protected final String __define_linker_1_name = null;
> @@ -144,7 +154,23 @@
>       moduleDef.addLinker(name.name);
>       return null;
>     }
> -
> +
> +    /**
> +     * Indicates which subdirectories contain class files without
> +     * necessarily adding a sourcepath entry.
> +     */
> +    protected Schema __binary_begin(String path, String includes,
> +        String excludes, String defaultExcludes, String caseSensitive) {
> +      return fChild = new IncludeExcludeSchema();
> +    }
> +
> +    protected void __binary_end(String path, String includes, String
> excludes,
> +        String defaultExcludes, String caseSensitive) {
> +      foundAnyBinary = true;
> +      addBinaryPackage(path, includes, excludes, defaultExcludes,
> +          caseSensitive);
> +    }
> +
>     protected Schema __clear_configuration_property_begin(PropertyName
> name)
>         throws UnableToCompleteException {
>       // Don't allow configuration properties with the same name as a
> @@ -174,7 +200,7 @@
>     protected Schema __define_configuration_property_begin(PropertyName
> name,
>         String is_multi_valued) throws UnableToCompleteException {
>       boolean isMultiValued = toPrimitiveBoolean(is_multi_valued);
> -
> +
>       // Don't allow configuration properties with the same name as a
>       // deferred-binding property.
>       Property existingProperty =
> moduleDef.getProperties().find(name.token);
> @@ -233,7 +259,7 @@
>         }
>         throw new UnableToCompleteException();
>       }
> -
> +
>       // No children.
>       return null;
>     }
> @@ -559,7 +585,50 @@
>           caseSensitive, true);
>     }
>
> -    private void addDelimitedStringToSet(String delimited, String
> delimiter,
> +    private void addBinaryPackage(String relDir, String includes,
> +        String excludes, String defaultExcludes, String caseSensitive) {
> +      IncludeExcludeSchema childSchema = ((IncludeExcludeSchema) fChild);
> +
> +      Set<String> includeSet = childSchema.getIncludes();
> +      addDelimitedStringToSet(includes, "[ ,]", includeSet);
> +      String[] includeList = includeSet.toArray(new
> String[includeSet.size()]);
> +
> +      Set<String> excludeSet = childSchema.getExcludes();
> +      addDelimitedStringToSet(excludes, "[ ,]", excludeSet);
> +      String[] excludeList = excludeSet.toArray(new
> String[excludeSet.size()]);
> +
> +      boolean doDefaultExcludes = toPrimitiveBoolean(defaultExcludes);
> +      boolean doCaseSensitive = toPrimitiveBoolean(caseSensitive);
> +
> +      addBinaryPackage(modulePackageAsPath, relDir, includeList,
> excludeList,
> +          doDefaultExcludes, doCaseSensitive);
> +    }
> +
> +    private void addBinaryPackage(String parentDir, String relDir,
> +        String[] includeList, String[] excludeList, boolean
> defaultExcludes,
> +        boolean caseSensitive) {
> +      String normChildDir = normalizePathEntry(relDir);
> +      if (normChildDir.startsWith("/")) {
> +        logger.log(TreeLogger.WARN, "Non-relative public package: "
> +            + normChildDir, null);
> +        return;
> +      }
> +      if (normChildDir.startsWith("./") || normChildDir.indexOf("/./") >=
> 0) {
> +        logger.log(TreeLogger.WARN, "Non-canonical public package: "
> +            + normChildDir, null);
> +        return;
> +      }
> +      if (normChildDir.startsWith("../") || normChildDir.indexOf("/../")
>
>> = 0) {
>>
> +        logger.log(TreeLogger.WARN, "Non-canonical public package: "
> +            + normChildDir, null);
> +        return;
> +      }
> +      String fullDir = parentDir + normChildDir;
> +      moduleDef.addBinaryPackage(fullDir, includeList, excludeList,
> +          defaultExcludes, caseSensitive);
> +    }
> +
> +   private void addDelimitedStringToSet(String delimited, String
> delimiter,
>         Set<String> toSet) {
>       if (delimited.length() > 0) {
>         String[] split = delimited.split(delimiter);
> @@ -804,6 +873,7 @@
>    */
>   private final class LinkerNameAttrCvt extends AttributeConverter {
>
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>       // Ensure the value is a valid Java identifier
> @@ -834,6 +904,7 @@
>    */
>   private final class NullableNameAttrCvt extends AttributeConverter {
>
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>       if (value == null || value.length() == 0) {
> @@ -869,6 +940,7 @@
>       fReqdSuperclass = reqdSuperclass;
>     }
>
> +    @Override
>     public Object convertToArg(Schema schema, int lineNumber, String
> elemName,
>         String attrName, String attrValue) throws UnableToCompleteException
> {
>
> @@ -917,6 +989,7 @@
>       this.concreteType = concreteType;
>     }
>
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>       // Find the named property.
> @@ -955,6 +1028,7 @@
>    */
>   private final class PropertyNameAttrCvt extends AttributeConverter {
>
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>       // Ensure each part of the name is valid.
> @@ -1012,6 +1086,8 @@
>    * Converts a comma-separated string into an array of property value
> tokens.
>    */
>   private final class PropertyValueArrayAttrCvt extends AttributeConverter
> {
> +
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>       String[] tokens = value.split(",");
> @@ -1032,6 +1108,8 @@
>    * Converts a string into a property value, validating it in the process.
>    */
>   private final class PropertyValueAttrCvt extends AttributeConverter {
> +
> +    @Override
>     public Object convertToArg(Schema schema, int line, String elem,
>         String attr, String value) throws UnableToCompleteException {
>
> @@ -1108,6 +1186,7 @@
>   private final ClassAttrCvt classAttrCvt = new ClassAttrCvt();
>   private final PropertyAttrCvt configurationPropAttrCvt = new
> PropertyAttrCvt(
>       ConfigurationProperty.class);
> +  private boolean foundAnyBinary;
>   private boolean foundAnyPublic;
>   private boolean foundExplicitSourceOrSuperSource;
>   private final ObjAttrCvt<Generator> genAttrCvt = new
> ObjAttrCvt<Generator>(
> @@ -1164,6 +1243,11 @@
>       bodySchema.addPublicPackage(modulePackageAsPath, "public",
> Empty.STRINGS,
>           Empty.STRINGS, true, true);
>     }
> +
> +    if (!foundAnyBinary) {
> +      bodySchema.addBinaryPackage(modulePackageAsPath, "", Empty.STRINGS,
> +          Empty.STRINGS, true, true);
> +    }
>
>     // We do this in __module_end so this value is never inherited
>     moduleDef.setNameOverride(renameTo.token);
>
>

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to