From 0d2c8498eaeac0205065a253ac85402c13f365d4 Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Sat, 12 Jan 2002 23:41:07 +0000 Subject: [PATCH] Cleaned up task and added attributes for all settable qualities. Create COmmandline in separate method and reuse that git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270700 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/taskdefs/Patch.java | 149 +++++++++++------- .../org/apache/tools/ant/taskdefs/Patch.java | 149 +++++++++++------- 2 files changed, 182 insertions(+), 116 deletions(-) diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Patch.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Patch.java index 11fe3496a..5cbaada97 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Patch.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Patch.java @@ -9,8 +9,8 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.io.IOException; +import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Commandline; @@ -18,25 +18,27 @@ import org.apache.tools.ant.types.Commandline; * Task as a layer on top of patch. Patch applies a diff file to an original. * * @author Stefan Bodewig + * @author Peter Donald */ -public class Patch extends Task +public class Patch + extends AbstractTask { - private boolean havePatchfile = false; - private Commandline cmd = new Commandline(); - - private File originalFile; + private File m_originalFile; + private File m_patchFile; + private boolean m_backups; + private boolean m_ignorewhitespace; + private boolean m_reverse; + private boolean m_quiet; + private Integer m_strip; /** * Shall patch write backups. * * @param backups The new Backups value */ - public void setBackups( boolean backups ) + public void setBackups( final boolean backups ) { - if( backups ) - { - cmd.createArgument().setValue( "-b" ); - } + m_backups = backups; } /** @@ -44,12 +46,9 @@ public class Patch extends Task * * @param ignore The new Ignorewhitespace value */ - public void setIgnorewhitespace( boolean ignore ) + public void setIgnorewhitespace( final boolean ignorewhitespace ) { - if( ignore ) - { - cmd.createArgument().setValue( "-l" ); - } + m_ignorewhitespace = ignorewhitespace; } /** @@ -57,9 +56,9 @@ public class Patch extends Task * * @param file The new Originalfile value */ - public void setOriginalfile( File file ) + public void setOriginalfile( final File originalFile ) { - originalFile = file; + m_originalFile = originalFile; } /** @@ -67,16 +66,10 @@ public class Patch extends Task * * @param file The new Patchfile value */ - public void setPatchfile( File file ) + public void setPatchfile( final File patchFile ) throws TaskException { - if( !file.exists() ) - { - throw new TaskException( "patchfile " + file + " doesn\'t exist" ); - } - cmd.createArgument().setValue( "-i" ); - cmd.createArgument().setFile( file ); - havePatchfile = true; + m_patchFile = patchFile; } /** @@ -84,12 +77,9 @@ public class Patch extends Task * * @param q The new Quiet value */ - public void setQuiet( boolean q ) + public void setQuiet( final boolean quiet ) { - if( q ) - { - cmd.createArgument().setValue( "-s" ); - } + m_quiet = quiet; } /** @@ -97,12 +87,9 @@ public class Patch extends Task * * @param r The new Reverse value */ - public void setReverse( boolean r ) + public void setReverse( final boolean reverse ) { - if( r ) - { - cmd.createArgument().setValue( "-R" ); - } + m_reverse = reverse; } /** @@ -111,46 +98,92 @@ public class Patch extends Task * * patch's -p option. * - * @param num The new Strip value - * @exception TaskException Description of Exception + * @param strip The new Strip value */ - public void setStrip( int num ) + public void setStrip( final Integer strip ) + { + m_strip = strip; + } + + public void execute() throws TaskException { - if( num < 0 ) + validate(); + + final Execute2 exe = new Execute2(); + setupLogger( exe ); + + final Commandline cmd = buildCommand(); + exe.setCommandline( cmd.getCommandline() ); + + try { - throw new TaskException( "strip has to be >= 0" ); + exe.execute(); + } + catch( IOException e ) + { + throw new TaskException( "Error", e ); } - cmd.createArgument().setValue( "-p" + num ); } - public void execute() + private void validate() throws TaskException { - if( !havePatchfile ) + if( null == m_patchFile ) { - throw new TaskException( "patchfile argument is required" ); + final String message = "patchfile argument is required"; + throw new TaskException( message ); } - Commandline toExecute = (Commandline)cmd.clone(); - toExecute.setExecutable( "patch" ); + if( !m_patchFile.exists() ) + { + final String message = "patchfile " + m_patchFile + " doesn\'t exist"; + throw new TaskException( message ); + } - if( originalFile != null ) + if( null != m_strip && m_strip.intValue() < 0 ) { - toExecute.createArgument().setFile( originalFile ); + throw new TaskException( "strip has to be >= 0" ); } + } - final Execute2 exe = new Execute2(); - setupLogger( exe ); - exe.setCommandline( toExecute.getCommandline() ); - try + private Commandline buildCommand() + { + final Commandline cmd = new Commandline(); + cmd.setExecutable( "patch" ); + + if( m_backups ) { - exe.execute(); + cmd.createArgument().setValue( "-b" ); } - catch( IOException e ) + + if( null != m_strip ) { - throw new TaskException( "Error", e ); + cmd.createArgument().setValue( "-p" + m_strip.intValue() ); + } + + if( m_quiet ) + { + cmd.createArgument().setValue( "-s" ); + } + + if( m_reverse ) + { + cmd.createArgument().setValue( "-R" ); + } + + cmd.createArgument().setValue( "-i" ); + cmd.createArgument().setFile( m_patchFile ); + + if( m_ignorewhitespace ) + { + cmd.createArgument().setValue( "-l" ); } - } -}// Patch + if( null != m_originalFile ) + { + cmd.createArgument().setFile( m_originalFile ); + } + return cmd; + } +} diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Patch.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Patch.java index 11fe3496a..5cbaada97 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Patch.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Patch.java @@ -9,8 +9,8 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.io.IOException; +import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.exec.Execute2; import org.apache.tools.ant.types.Commandline; @@ -18,25 +18,27 @@ import org.apache.tools.ant.types.Commandline; * Task as a layer on top of patch. Patch applies a diff file to an original. * * @author Stefan Bodewig + * @author Peter Donald */ -public class Patch extends Task +public class Patch + extends AbstractTask { - private boolean havePatchfile = false; - private Commandline cmd = new Commandline(); - - private File originalFile; + private File m_originalFile; + private File m_patchFile; + private boolean m_backups; + private boolean m_ignorewhitespace; + private boolean m_reverse; + private boolean m_quiet; + private Integer m_strip; /** * Shall patch write backups. * * @param backups The new Backups value */ - public void setBackups( boolean backups ) + public void setBackups( final boolean backups ) { - if( backups ) - { - cmd.createArgument().setValue( "-b" ); - } + m_backups = backups; } /** @@ -44,12 +46,9 @@ public class Patch extends Task * * @param ignore The new Ignorewhitespace value */ - public void setIgnorewhitespace( boolean ignore ) + public void setIgnorewhitespace( final boolean ignorewhitespace ) { - if( ignore ) - { - cmd.createArgument().setValue( "-l" ); - } + m_ignorewhitespace = ignorewhitespace; } /** @@ -57,9 +56,9 @@ public class Patch extends Task * * @param file The new Originalfile value */ - public void setOriginalfile( File file ) + public void setOriginalfile( final File originalFile ) { - originalFile = file; + m_originalFile = originalFile; } /** @@ -67,16 +66,10 @@ public class Patch extends Task * * @param file The new Patchfile value */ - public void setPatchfile( File file ) + public void setPatchfile( final File patchFile ) throws TaskException { - if( !file.exists() ) - { - throw new TaskException( "patchfile " + file + " doesn\'t exist" ); - } - cmd.createArgument().setValue( "-i" ); - cmd.createArgument().setFile( file ); - havePatchfile = true; + m_patchFile = patchFile; } /** @@ -84,12 +77,9 @@ public class Patch extends Task * * @param q The new Quiet value */ - public void setQuiet( boolean q ) + public void setQuiet( final boolean quiet ) { - if( q ) - { - cmd.createArgument().setValue( "-s" ); - } + m_quiet = quiet; } /** @@ -97,12 +87,9 @@ public class Patch extends Task * * @param r The new Reverse value */ - public void setReverse( boolean r ) + public void setReverse( final boolean reverse ) { - if( r ) - { - cmd.createArgument().setValue( "-R" ); - } + m_reverse = reverse; } /** @@ -111,46 +98,92 @@ public class Patch extends Task * * patch's -p option. * - * @param num The new Strip value - * @exception TaskException Description of Exception + * @param strip The new Strip value */ - public void setStrip( int num ) + public void setStrip( final Integer strip ) + { + m_strip = strip; + } + + public void execute() throws TaskException { - if( num < 0 ) + validate(); + + final Execute2 exe = new Execute2(); + setupLogger( exe ); + + final Commandline cmd = buildCommand(); + exe.setCommandline( cmd.getCommandline() ); + + try { - throw new TaskException( "strip has to be >= 0" ); + exe.execute(); + } + catch( IOException e ) + { + throw new TaskException( "Error", e ); } - cmd.createArgument().setValue( "-p" + num ); } - public void execute() + private void validate() throws TaskException { - if( !havePatchfile ) + if( null == m_patchFile ) { - throw new TaskException( "patchfile argument is required" ); + final String message = "patchfile argument is required"; + throw new TaskException( message ); } - Commandline toExecute = (Commandline)cmd.clone(); - toExecute.setExecutable( "patch" ); + if( !m_patchFile.exists() ) + { + final String message = "patchfile " + m_patchFile + " doesn\'t exist"; + throw new TaskException( message ); + } - if( originalFile != null ) + if( null != m_strip && m_strip.intValue() < 0 ) { - toExecute.createArgument().setFile( originalFile ); + throw new TaskException( "strip has to be >= 0" ); } + } - final Execute2 exe = new Execute2(); - setupLogger( exe ); - exe.setCommandline( toExecute.getCommandline() ); - try + private Commandline buildCommand() + { + final Commandline cmd = new Commandline(); + cmd.setExecutable( "patch" ); + + if( m_backups ) { - exe.execute(); + cmd.createArgument().setValue( "-b" ); } - catch( IOException e ) + + if( null != m_strip ) { - throw new TaskException( "Error", e ); + cmd.createArgument().setValue( "-p" + m_strip.intValue() ); + } + + if( m_quiet ) + { + cmd.createArgument().setValue( "-s" ); + } + + if( m_reverse ) + { + cmd.createArgument().setValue( "-R" ); + } + + cmd.createArgument().setValue( "-i" ); + cmd.createArgument().setFile( m_patchFile ); + + if( m_ignorewhitespace ) + { + cmd.createArgument().setValue( "-l" ); } - } -}// Patch + if( null != m_originalFile ) + { + cmd.createArgument().setFile( m_originalFile ); + } + return cmd; + } +}