22
33import java .util .*;
44
5- import static com .cleancoder .args .ArgsException .ErrorCode .*;
5+ import static com .cleancoder .args .InvalidSchemaException .ErrorCode .*;
6+ import static com .cleancoder .args .InvalidArgumentException .ErrorCode .*;
67
78public class Args {
89 private Map <Character , ArgumentMarshaler > marshalers ;
910 private Set <Character > argsFound ;
1011 private ListIterator <String > currentArgument ;
1112
12- public Args (String schema , String [] args ) throws ArgsException {
13+ public Args (String schema , String [] args ) {
1314 marshalers = new HashMap <Character , ArgumentMarshaler >();
1415 argsFound = new HashSet <Character >();
1516
1617 parseSchema (schema );
1718 parseArgumentStrings (Arrays .asList (args ));
1819 }
1920
20- private void parseSchema (String schema ) throws ArgsException {
21+ private void parseSchema (String schema ) {
2122 for (String element : schema .split ("," ))
2223 if (element .length () > 0 )
2324 parseSchemaElement (element .trim ());
2425 }
2526
26- private void parseSchemaElement (String element ) throws ArgsException {
27+ private void parseSchemaElement (String element ) {
2728 char elementId = element .charAt (0 );
2829 String elementTail = element .substring (1 );
2930 validateSchemaElementId (elementId );
@@ -40,15 +41,15 @@ else if (elementTail.equals("[*]"))
4041 else if (elementTail .equals ("&" ))
4142 marshalers .put (elementId , new MapArgumentMarshaler ());
4243 else
43- throw new ArgsException ( INVALID_ARGUMENT_FORMAT , elementId , elementTail );
44+ throw new InvalidSchemaException ( UNSUPPORTED_SCHEMA_TYPE , elementId , elementTail );
4445 }
4546
46- private void validateSchemaElementId (char elementId ) throws ArgsException {
47+ private void validateSchemaElementId (char elementId ) {
4748 if (!Character .isLetter (elementId ))
48- throw new ArgsException (INVALID_ARGUMENT_NAME , elementId , null );
49+ throw new InvalidArgumentException (INVALID_ARGUMENT_NAME , elementId );
4950 }
5051
51- private void parseArgumentStrings (List <String > argsList ) throws ArgsException {
52+ private void parseArgumentStrings (List <String > argsList ) {
5253 for (currentArgument = argsList .listIterator (); currentArgument .hasNext ();) {
5354 String argString = currentArgument .next ();
5455 if (argString .startsWith ("-" )) {
@@ -60,21 +61,21 @@ private void parseArgumentStrings(List<String> argsList) throws ArgsException {
6061 }
6162 }
6263
63- private void parseArgumentCharacters (String argChars ) throws ArgsException {
64+ private void parseArgumentCharacters (String argChars ) {
6465 for (int i = 0 ; i < argChars .length (); i ++)
6566 parseArgumentCharacter (argChars .charAt (i ));
6667 }
6768
68- private void parseArgumentCharacter (char argChar ) throws ArgsException {
69+ private void parseArgumentCharacter (char argChar ) {
6970 ArgumentMarshaler m = marshalers .get (argChar );
7071 if (m == null ) {
71- throw new ArgsException (UNEXPECTED_ARGUMENT , argChar , null );
72+ throw new InvalidArgumentException (UNEXPECTED_ARGUMENT , argChar );
7273 } else {
7374 argsFound .add (argChar );
7475 try {
75- m .set (currentArgument );
76- } catch (ArgsException e ) {
77- e .setErrorArgumentId (argChar );
76+ m .set (currentArgument , argChar );
77+ } catch (InvalidArgumentException e ) {
78+ // e.setErrorArgumentId(argChar);
7879 throw e ;
7980 }
8081 }
0 commit comments