Skip to content

Commit

Permalink
task: use generics properly to avoid unchecked warnings
Browse files Browse the repository at this point in the history
Parameterise access to collections classes.
  • Loading branch information
mbtaylor committed Aug 21, 2014
1 parent 9f90f5c commit a99a465
Show file tree
Hide file tree
Showing 9 changed files with 62 additions and 60 deletions.
2 changes: 2 additions & 0 deletions task/build.xml
Expand Up @@ -347,6 +347,7 @@
source="${source.version}"
optimize="${optimize}">

<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-proc:none" compiler="javac1.6"/>
<classpath refid="classpath"/>

Expand Down Expand Up @@ -895,6 +896,7 @@
source="${source.version}"
deprecation="${deprecation}" >

<compilerarg value="-Xlint:unchecked"/>
<compilerarg value="-proc:none" compiler="javac1.6"/>
<classpath refid="tests-classpath"/>

Expand Down
14 changes: 7 additions & 7 deletions task/src/main/uk/ac/starlink/task/InvokeUtils.java
Expand Up @@ -114,16 +114,16 @@ public static void summariseError( Throwable error, PrintStream out ) {
* @return output list
*/
public static Parameter[] sortParameters( Parameter[] params ) {
List numbered = new ArrayList();
List unNumbered = new ArrayList();
List<Parameter> numbered = new ArrayList<Parameter>();
List<Parameter> unNumbered = new ArrayList<Parameter>();
for ( int i = 0; i < params.length; i++ ) {
Parameter param = params[ i ];
( param.getPosition() > 0 ? numbered : unNumbered ).add( param );
}
Collections.sort( numbered, new Comparator() {
public int compare( Object o1, Object o2 ) {
int pos1 = ((Parameter) o1).getPosition();
int pos2 = ((Parameter) o2).getPosition();
Collections.sort( numbered, new Comparator<Parameter>() {
public int compare( Parameter p1, Parameter p2 ) {
int pos1 = p1.getPosition();
int pos2 = p2.getPosition();
if ( pos1 < pos2 ) {
return -1;
}
Expand All @@ -136,7 +136,7 @@ else if ( pos2 < pos1 ) {
}
}
} );
List paramList = numbered;
List<Parameter> paramList = numbered;
paramList.addAll( unNumbered );
return (Parameter[]) paramList.toArray( new Parameter[ 0 ] );
}
Expand Down
31 changes: 16 additions & 15 deletions task/src/main/uk/ac/starlink/task/LineEnvironment.java
Expand Up @@ -13,7 +13,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import uk.ac.starlink.task.MultiParameter;
import uk.ac.starlink.util.LineReader;

/**
Expand All @@ -31,8 +30,8 @@ public class LineEnvironment implements Environment {
private Argument[] arguments_;
private PrintStream out_ = System.out;
private PrintStream err_ = System.err;
private final Set clearedParams_ = new HashSet();
private final List acquiredValues_ = new ArrayList();
private final Set<Parameter> clearedParams_ = new HashSet<Parameter>();
private final List<String> acquiredValues_ = new ArrayList<String>();

static final String NULL_STRING = "";
public static final char INDIRECTION_CHAR = '@';
Expand Down Expand Up @@ -117,14 +116,15 @@ public boolean isHidden( Parameter param ) {
*/
public void checkParameters( Parameter[] params ) throws UsageException {
int narg = arguments_.length;
Set paramSet = new HashSet( Arrays.asList( params ) );
Set<Parameter> paramSet =
new HashSet<Parameter>( Arrays.asList( params ) );
int position = 1;
for ( int ia = 0; ia < narg; ia++ ) {
LineWord word = arguments_[ ia ].word_;
boolean found = false;
for ( Iterator it = paramSet.iterator();
for ( Iterator<Parameter> it = paramSet.iterator();
! found && it.hasNext(); ) {
Parameter param = (Parameter) it.next();
Parameter param = it.next();
if ( ! found && paramNameMatches( word.getName(), param ) ) {
found = true;
if ( ! ( param instanceof MultiParameter ) ) {
Expand Down Expand Up @@ -221,7 +221,7 @@ private String findValue( Parameter param ) throws TaskException {
* on the command line. */
if ( param instanceof MultiParameter ) {
char separator = ((MultiParameter) param).getValueSeparator();
List valueList = new ArrayList();
List<String> valueList = new ArrayList<String>();
for ( int i = 0; i < arguments_.length; i++ ) {
Argument arg = arguments_[ i ];
LineWord word = arg.word_;
Expand All @@ -232,7 +232,7 @@ private String findValue( Parameter param ) throws TaskException {
}
}
if ( valueList.size() == 1 ) {
String value = (String) valueList.get( 0 );
String value = valueList.get( 0 );
if ( value.charAt( 0 ) == INDIRECTION_CHAR ) {
String[] lines;
try {
Expand All @@ -256,8 +256,9 @@ private String findValue( Parameter param ) throws TaskException {
}
else if ( valueList.size() > 1 ) {
StringBuffer val = new StringBuffer();
for ( Iterator it = valueList.iterator(); it.hasNext(); ) {
val.append( (String) it.next() );
for ( Iterator<String> it = valueList.iterator();
it.hasNext(); ) {
val.append( it.next() );
if ( it.hasNext() ) {
val.append( separator );
}
Expand Down Expand Up @@ -485,14 +486,14 @@ else if ( value.indexOf( '"' ) < 0 ) {
* @return array of unused words
*/
public String[] getUnused() {
List unusedList = new ArrayList();
List<String> unusedList = new ArrayList<String>();
for ( int i = 0; i < arguments_.length; i++ ) {
Argument arg = arguments_[ i ];
if ( ! arg.used_ ) {
unusedList.add( arg.word_.getText() );
}
}
return (String[]) unusedList.toArray( new String[ 0 ] );
return unusedList.toArray( new String[ 0 ] );
}

/**
Expand All @@ -503,7 +504,7 @@ public String[] getUnused() {
* @return array of parameter assignment strings
*/
public String[] getAssignments() {
return (String[]) acquiredValues_.toArray( new String[ 0 ] );
return acquiredValues_.toArray( new String[ 0 ] );
}

/**
Expand Down Expand Up @@ -552,7 +553,7 @@ private static String[] readLines( String location ) throws IOException {
InputStream istrm = new FileInputStream( new File( location ) );
BufferedReader rdr =
new BufferedReader( new InputStreamReader( istrm ) );
List lineList = new ArrayList();
List<String> lineList = new ArrayList<String>();
try {
for ( String line; ( line = rdr.readLine() ) != null; ) {
lineList.add( line );
Expand All @@ -561,7 +562,7 @@ private static String[] readLines( String location ) throws IOException {
finally {
rdr.close();
}
return (String[]) lineList.toArray( new String[ 0 ] );
return lineList.toArray( new String[ 0 ] );
}

/**
Expand Down
6 changes: 3 additions & 3 deletions task/src/main/uk/ac/starlink/task/MultiTaskInvoker.java
Expand Up @@ -43,14 +43,14 @@ public MultiTaskInvoker( String toolName,
* @param args command line words
*/
public int invoke( String[] args ) {
List argList = new ArrayList( Arrays.asList( args ) );
List<String> argList = new ArrayList<String>( Arrays.asList( args ) );

/* Process flags. */
boolean debug = false;
boolean bench = false;
int verbose = 0;
for ( Iterator it = argList.iterator(); it.hasNext(); ) {
String arg = (String) it.next();
for ( Iterator<String> it = argList.iterator(); it.hasNext(); ) {
String arg = it.next();
if ( arg.charAt( 0 ) != '-' ) {
break;
}
Expand Down
8 changes: 4 additions & 4 deletions task/src/main/uk/ac/starlink/task/SingleTaskInvoker.java
Expand Up @@ -31,12 +31,12 @@ public SingleTaskInvoker( Task task, String taskName ) {
}

public int invoke( String[] args ) {
List argList = new ArrayList( Arrays.asList( args ) );
List<String> argList = new ArrayList<String>( Arrays.asList( args ) );

/* Process flags. */
boolean debug = false;
for ( Iterator it = argList.iterator(); it.hasNext(); ) {
String arg = (String) it.next();
for ( Iterator<String> it = argList.iterator(); it.hasNext(); ) {
String arg = it.next();
if ( arg.charAt( 0 ) != '-' ) {
break;
}
Expand All @@ -53,7 +53,7 @@ public int invoke( String[] args ) {

/* Execute the task given the now-flagless command line. */
try {
String[] taskArgs = (String[]) argList.toArray( new String[ 0 ] );
String[] taskArgs = argList.toArray( new String[ 0 ] );
Environment env =
new LineEnvironment( taskArgs, task_.getParameters() );
task_.createExecutable( env ).execute();
Expand Down
18 changes: 9 additions & 9 deletions task/src/main/uk/ac/starlink/task/TerminalEnvironment.java
Expand Up @@ -23,8 +23,8 @@
*/
public class TerminalEnvironment implements Environment {

private Map valueMap;
private Set paramSet;
private Map<Parameter,String> valueMap;
private Set<Parameter> paramSet;

/** The number of goes you get to put in an invalid parameter. */
public static int NUM_TRIES = 5;
Expand All @@ -45,11 +45,11 @@ public class TerminalEnvironment implements Environment {
*/
public TerminalEnvironment( String[] args, Parameter[] params )
throws UsageException {
paramSet = new HashSet( params.length );
paramSet = new HashSet<Parameter>( params.length );
for ( int i = 0; i < params.length; i++ ) {
paramSet.add( params[ i ] );
}
valueMap = new LinkedHashMap();
valueMap = new LinkedHashMap<Parameter,String>();
for ( int i = 0; i < args.length; i++ ) {
boolean found = false;
String[] pp = args[ i ].split( "=" );
Expand Down Expand Up @@ -155,7 +155,7 @@ else if ( par.getPreferExplicit() || ! par.isNullPermitted() ) {
}
}
try {
par.setValueFromString( this, (String) valueMap.get( par ) );
par.setValueFromString( this, valueMap.get( par ) );
}
catch ( ParameterValueException e ) {
System.out.println( e.getMessage() );
Expand All @@ -174,11 +174,11 @@ public void clearValue( Parameter par ) {
}

public String[] getNames() {
List nameList = new ArrayList();
for ( Iterator it = paramSet.iterator(); it.hasNext(); ) {
nameList.add( ((Parameter) it.next()).getName() );
List<String> nameList = new ArrayList<String>();
for ( Parameter param : paramSet ) {
nameList.add( param.getName() );
}
return (String[]) nameList.toArray( new String[ 0 ] );
return nameList.toArray( new String[ 0 ] );
}

/**
Expand Down
33 changes: 16 additions & 17 deletions task/src/main/uk/ac/starlink/task/TerminalInvoker.java
Expand Up @@ -24,7 +24,7 @@
public class TerminalInvoker {

private String toolname;
private Map taskmap;
private Map<String,Task> taskmap;

/**
* Creates a new invoker based on the given class with a given name.
Expand All @@ -35,7 +35,7 @@ public class TerminalInvoker {
* @param toolname the name of this tool, used for user messages
* @param taskmap map of task names to <tt>Task</tt> objects
*/
public TerminalInvoker( String toolname, Map taskmap ) {
public TerminalInvoker( String toolname, Map<String,Task> taskmap ) {
this.toolname = toolname;
this.taskmap = taskmap;
}
Expand Down Expand Up @@ -98,11 +98,10 @@ public void invoke( String[] args ) throws Exception {
if ( taskname.startsWith( "-" ) ) {
System.out.println( usage );
System.out.println( "Known tasks:" );
Map tmap = new TreeMap( taskmap );
for ( Iterator it = tmap.entrySet().iterator(); it.hasNext(); ) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println( " " + (String) entry.getKey() + " " +
getTaskUsage( (Task) entry.getValue() ) );
Map<String,Task> tmap = new TreeMap<String,Task>( taskmap );
for ( Map.Entry<String,Task> entry : tmap.entrySet() ) {
System.out.println( " " + entry.getKey() + " " +
getTaskUsage( entry.getValue() ) );

}
System.out.println();
Expand All @@ -113,7 +112,7 @@ public void invoke( String[] args ) throws Exception {
if ( taskmap.containsKey( taskname ) ) {

/* Get the task object which defines what is to be done. */
Task task = (Task) taskmap.get( taskname );
Task task = taskmap.get( taskname );

/* Prepare the command line which may contain its parameter
* values. */
Expand Down Expand Up @@ -204,16 +203,16 @@ public static String getTaskUsage( Task task ) {
* the numbered ones first and all the unnumbered ones (in the
* order they were submitted) following. */
Parameter[] params = task.getParameters();
List numbered = new ArrayList();
List unNumbered = new ArrayList();
List<Parameter> numbered = new ArrayList<Parameter>();
List<Parameter> unNumbered = new ArrayList<Parameter>();
for ( int i = 0; i < params.length; i++ ) {
Parameter param = params[ i ];
( param.getPosition() > 0 ? numbered : unNumbered ).add( param );
}
Collections.sort( numbered, new Comparator() {
public int compare( Object o1, Object o2 ) {
int pos1 = ((Parameter) o1).getPosition();
int pos2 = ((Parameter) o2).getPosition();
Collections.sort( numbered, new Comparator<Parameter>() {
public int compare( Parameter p1, Parameter p2 ) {
int pos1 = p1.getPosition();
int pos2 = p2.getPosition();
if ( pos1 < pos2 ) {
return -1;
}
Expand All @@ -226,13 +225,13 @@ else if ( pos2 < pos1 ) {
}
}
} );
List paramList = numbered;
List<Parameter> paramList = numbered;
paramList.addAll( unNumbered );

/* Assemble the usage message with one element for each parameter. */
StringBuffer usage = new StringBuffer();
for ( Iterator it = paramList.iterator(); it.hasNext(); ) {
Parameter param = (Parameter) it.next();
for ( Iterator<Parameter> it = paramList.iterator(); it.hasNext(); ) {
Parameter param = it.next();
boolean optional = param.isNullPermitted()
|| param.getDefault() != null;
if ( optional ) {
Expand Down
2 changes: 1 addition & 1 deletion task/src/testcases/uk/ac/starlink/task/ArithmeticTest.java
Expand Up @@ -13,7 +13,7 @@ public ArithmeticTest( String name ) {
}

public void testArithmetic() throws TaskException, IOException {
Map paramMap = new HashMap();
Map<String,String> paramMap = new HashMap<String,String>();
paramMap.put( "first", "101" );
paramMap.put( "second", "707" );
Task task = new AddTask();
Expand Down
8 changes: 4 additions & 4 deletions task/src/testcases/uk/ac/starlink/task/MapEnvironment.java
Expand Up @@ -6,11 +6,11 @@

public class MapEnvironment implements Environment {

private final Map map_;
private final Map<String,String> map_;
private ByteArrayOutputStream out_ = new ByteArrayOutputStream();
private PrintStream pout_ = new PrintStream( out_ );

public MapEnvironment( Map map ) {
public MapEnvironment( Map<String,String> map ) {
map_ = map;
}

Expand All @@ -19,11 +19,11 @@ public void clearValue( Parameter par ) {
}

public void acquireValue( Parameter par ) throws TaskException {
par.setValueFromString( this, (String) map_.get( par.getName() ) );
par.setValueFromString( this, map_.get( par.getName() ) );
}

public String[] getNames() {
return (String[]) map_.keySet().toArray( new String[ 0 ] );
return map_.keySet().toArray( new String[ 0 ] );
}

public PrintStream getOutputStream() {
Expand Down

0 comments on commit a99a465

Please sign in to comment.