Author: bodewig
Date: Mon Nov 17 21:09:22 2008
New Revision: 718486

URL: http://svn.apache.org/viewvc?rev=718486&view=rev
Log:
two more places where Appendable can be used

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
    
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
    
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java Mon Nov 
17 21:09:22 2008
@@ -25,6 +25,7 @@
 import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.Resource;
 import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.Appendable;
 import org.apache.tools.ant.types.resources.FileProvider;
 import org.apache.tools.ant.types.resources.FileResource;
 import org.apache.tools.ant.types.resources.Union;
@@ -569,16 +570,26 @@
                 try {
                     if (output != null) {
                         log("Opening PrintStream to output Resource " + 
output, Project.MSG_VERBOSE);
-                        OutputStream os;
+                        OutputStream os = null;
                         FileProvider fp =
                             (FileProvider) output.as(FileProvider.class);
                         if (fp != null) {
                             os = new FileOutputStream(fp.getFile(), append);
                         } else {
-                            // TODO use Appendable
-                            os = output.getOutputStream();
                             if (append) {
-                                log("Ignoring append=true for non-file 
resource " + output, Project.MSG_WARN);
+                                Appendable a =
+                                    (Appendable) output.as(Appendable.class);
+                                if (a != null) {
+                                    os = a.getAppendOutputStream();
+                                }
+                            }
+                            if (os == null) {
+                                os = output.getOutputStream();
+                                if (append) {
+                                    log("Ignoring append=true for 
non-appendable"
+                                        + " resource " + output,
+                                        Project.MSG_WARN);
+                                }
                             }
                         }
                         out = new PrintStream(new BufferedOutputStream(os));

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
 Mon Nov 17 21:09:22 2008
@@ -252,6 +252,32 @@
     }
 
     /**
+     * Suppress FileProvider, re-implement Appendable
+     */
+    public Object as(Class clazz) {
+        if (Appendable.class.isAssignableFrom(clazz)) {
+            final Appendable a =
+                (Appendable) getResource().as(Appendable.class);
+            if (a != null) {
+                return new Appendable() {
+                    public OutputStream getAppendOutputStream()
+                        throws IOException {
+                        OutputStream out = a.getAppendOutputStream();
+                        if (out != null) {
+                            out = wrapStream(out);
+                        }
+                        return out;
+                    }
+                };
+            }
+            return null;
+        }
+
+        return FileProvider.class.isAssignableFrom(clazz) 
+            ? null : getResource().as(clazz);
+    }
+
+    /**
      * Is supposed to wrap the stream.
      *
      * @param in InputStream to wrap, will never be null.

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
 Mon Nov 17 21:09:22 2008
@@ -159,6 +159,9 @@
         throw new UnsupportedOperationException();
     }
 
+    /**
+     * Suppress FileProvider
+     */
     public Object as(Class clazz) {
         return FileProvider.class.isAssignableFrom(clazz) 
             ? null : wrapped.as(clazz);


Reply via email to