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 ); | |||||
| } | |||||
| } | |||||
| } | |||||