git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271691 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,152 +0,0 @@ | |||
/* | |||
* Copyright (C) The Apache Software Foundation. All rights reserved. | |||
* | |||
* This software is published under the terms of the Apache Software License | |||
* version 1.1, a copy of which has been included with this distribution in | |||
* the LICENSE.txt file. | |||
*/ | |||
package org.apache.tools.ant.taskdefs; | |||
import java.io.BufferedReader; | |||
import java.io.IOException; | |||
import java.io.InputStreamReader; | |||
import java.util.ArrayList; | |||
import java.util.StringTokenizer; | |||
import org.apache.myrmidon.api.AbstractTask; | |||
import org.apache.myrmidon.api.TaskException; | |||
/** | |||
* Ant task to read input line from console. | |||
* | |||
* @author Ulrich Schmidt <usch@usch.net> | |||
*/ | |||
public class Input extends AbstractTask | |||
{ | |||
private String validargs = null; | |||
private String message = ""; | |||
private String addproperty = null; | |||
private String input = null; | |||
/** | |||
* No arg constructor. | |||
*/ | |||
public Input() | |||
{ | |||
} | |||
/** | |||
* Defines the name of a property to be created from input. Behaviour is | |||
* according to property task which means that existing properties cannot be | |||
* overriden. | |||
* | |||
* @param addproperty Name for the property to be created from input | |||
*/ | |||
public void setAddproperty( String addproperty ) | |||
{ | |||
this.addproperty = addproperty; | |||
} | |||
/** | |||
* Sets the Message which gets displayed to the user during the build run. | |||
* | |||
* @param message The message to be displayed. | |||
*/ | |||
public void setMessage( String message ) | |||
{ | |||
this.message = message; | |||
} | |||
/** | |||
* Sets surrogate input to allow automated testing. | |||
* | |||
* @param testinput The new Testinput value | |||
*/ | |||
public void setTestinput( String testinput ) | |||
{ | |||
this.input = testinput; | |||
} | |||
/** | |||
* Defines valid input parameters as comma separated String. If set, input | |||
* task will reject any input not defined as accepted and requires the user | |||
* to reenter it. Validargs are case sensitive. If you want 'a' and 'A' to | |||
* be accepted you need to define both values as accepted arguments. | |||
* | |||
* @param validargs A comma separated String defining valid input args. | |||
*/ | |||
public void setValidargs( String validargs ) | |||
{ | |||
this.validargs = validargs; | |||
} | |||
// copied n' pasted from org.apache.tools.ant.taskdefs.Exit | |||
/** | |||
* Set a multiline message. | |||
* | |||
* @param msg The feature to be added to the Text attribute | |||
*/ | |||
public void addContent( String msg ) | |||
throws TaskException | |||
{ | |||
message = msg; | |||
} | |||
/** | |||
* Actual test method executed by jakarta-ant. | |||
* | |||
* @exception TaskException | |||
*/ | |||
public void execute() | |||
throws TaskException | |||
{ | |||
ArrayList accept = null; | |||
if( validargs != null ) | |||
{ | |||
accept = new ArrayList(); | |||
StringTokenizer stok = new StringTokenizer( validargs, ",", false ); | |||
while( stok.hasMoreTokens() ) | |||
{ | |||
accept.add( stok.nextToken() ); | |||
} | |||
} | |||
getLogger().warn( message ); | |||
if( input == null ) | |||
{ | |||
try | |||
{ | |||
BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); | |||
input = in.readLine(); | |||
if( accept != null ) | |||
{ | |||
while( !accept.contains( input ) ) | |||
{ | |||
getLogger().warn( message ); | |||
input = in.readLine(); | |||
} | |||
} | |||
} | |||
catch( IOException e ) | |||
{ | |||
throw new TaskException( "Failed to read input from Console.", e ); | |||
} | |||
} | |||
// not quite the original intention of this task but for the sake | |||
// of testing ;-) | |||
else | |||
{ | |||
if( accept != null && ( !accept.contains( input ) ) ) | |||
{ | |||
throw new TaskException( "Invalid input please reenter." ); | |||
} | |||
} | |||
// adopted from org.apache.tools.ant.taskdefs.Property | |||
if( addproperty != null ) | |||
{ | |||
final String name = addproperty; | |||
final Object value = input; | |||
getContext().setProperty( name, value ); | |||
} | |||
} | |||
} | |||
@@ -1,152 +0,0 @@ | |||
/* | |||
* Copyright (C) The Apache Software Foundation. All rights reserved. | |||
* | |||
* This software is published under the terms of the Apache Software License | |||
* version 1.1, a copy of which has been included with this distribution in | |||
* the LICENSE.txt file. | |||
*/ | |||
package org.apache.tools.ant.taskdefs; | |||
import java.io.BufferedReader; | |||
import java.io.IOException; | |||
import java.io.InputStreamReader; | |||
import java.util.ArrayList; | |||
import java.util.StringTokenizer; | |||
import org.apache.myrmidon.api.AbstractTask; | |||
import org.apache.myrmidon.api.TaskException; | |||
/** | |||
* Ant task to read input line from console. | |||
* | |||
* @author Ulrich Schmidt <usch@usch.net> | |||
*/ | |||
public class Input extends AbstractTask | |||
{ | |||
private String validargs = null; | |||
private String message = ""; | |||
private String addproperty = null; | |||
private String input = null; | |||
/** | |||
* No arg constructor. | |||
*/ | |||
public Input() | |||
{ | |||
} | |||
/** | |||
* Defines the name of a property to be created from input. Behaviour is | |||
* according to property task which means that existing properties cannot be | |||
* overriden. | |||
* | |||
* @param addproperty Name for the property to be created from input | |||
*/ | |||
public void setAddproperty( String addproperty ) | |||
{ | |||
this.addproperty = addproperty; | |||
} | |||
/** | |||
* Sets the Message which gets displayed to the user during the build run. | |||
* | |||
* @param message The message to be displayed. | |||
*/ | |||
public void setMessage( String message ) | |||
{ | |||
this.message = message; | |||
} | |||
/** | |||
* Sets surrogate input to allow automated testing. | |||
* | |||
* @param testinput The new Testinput value | |||
*/ | |||
public void setTestinput( String testinput ) | |||
{ | |||
this.input = testinput; | |||
} | |||
/** | |||
* Defines valid input parameters as comma separated String. If set, input | |||
* task will reject any input not defined as accepted and requires the user | |||
* to reenter it. Validargs are case sensitive. If you want 'a' and 'A' to | |||
* be accepted you need to define both values as accepted arguments. | |||
* | |||
* @param validargs A comma separated String defining valid input args. | |||
*/ | |||
public void setValidargs( String validargs ) | |||
{ | |||
this.validargs = validargs; | |||
} | |||
// copied n' pasted from org.apache.tools.ant.taskdefs.Exit | |||
/** | |||
* Set a multiline message. | |||
* | |||
* @param msg The feature to be added to the Text attribute | |||
*/ | |||
public void addContent( String msg ) | |||
throws TaskException | |||
{ | |||
message = msg; | |||
} | |||
/** | |||
* Actual test method executed by jakarta-ant. | |||
* | |||
* @exception TaskException | |||
*/ | |||
public void execute() | |||
throws TaskException | |||
{ | |||
ArrayList accept = null; | |||
if( validargs != null ) | |||
{ | |||
accept = new ArrayList(); | |||
StringTokenizer stok = new StringTokenizer( validargs, ",", false ); | |||
while( stok.hasMoreTokens() ) | |||
{ | |||
accept.add( stok.nextToken() ); | |||
} | |||
} | |||
getLogger().warn( message ); | |||
if( input == null ) | |||
{ | |||
try | |||
{ | |||
BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); | |||
input = in.readLine(); | |||
if( accept != null ) | |||
{ | |||
while( !accept.contains( input ) ) | |||
{ | |||
getLogger().warn( message ); | |||
input = in.readLine(); | |||
} | |||
} | |||
} | |||
catch( IOException e ) | |||
{ | |||
throw new TaskException( "Failed to read input from Console.", e ); | |||
} | |||
} | |||
// not quite the original intention of this task but for the sake | |||
// of testing ;-) | |||
else | |||
{ | |||
if( accept != null && ( !accept.contains( input ) ) ) | |||
{ | |||
throw new TaskException( "Invalid input please reenter." ); | |||
} | |||
} | |||
// adopted from org.apache.tools.ant.taskdefs.Property | |||
if( addproperty != null ) | |||
{ | |||
final String name = addproperty; | |||
final Object value = input; | |||
getContext().setProperty( name, value ); | |||
} | |||
} | |||
} | |||