public static void main ( String [ ] args ) throws ParseException , ExceptionState , IOException { /* options for the program */ Options options = new Options ( ) ; /* add helm string */ options . addOption ( "inputHELM" , true , "HELM1 or HELM2 string in a file" ) ; /* add output option */ options . addOption ( "output" , true , "output can be in JSON- or HELM2-format" ) ; /* add translate option */ options . addOption ( "translate" , false , "translate HELM1 to HELM2" ) ; CommandLineParser parameter = new DefaultParser ( ) ; try { CommandLine cmd = parameter . parse ( options , args ) ; String filename = cmd . getOptionValue ( "inputHELM" ) ; ParserHELM2 parser = new ParserHELM2 ( ) ; FileReader in = new FileReader ( filename ) ; BufferedReader br = new BufferedReader ( in ) ; String line ; String helm ; try { while ( ( line = br . readLine ( ) ) != null ) { helm = line ; /* HELM1 notation has to be translated into HELM2 */ if ( cmd . hasOption ( "translate" ) ) { ConverterHELM1ToHELM2 converter = new ConverterHELM1ToHELM2 ( ) ; helm = converter . doConvert ( helm ) ; LOG . info ( "HELM1 is translated to HELM2" ) ; } parser . parse ( helm ) ; /* There are two different output options */ String output = "" ; if ( cmd . getOptionValue ( "output" ) . equals ( "HELM2" ) ) { output = parser . getHELM2Notation ( ) . toHELM2 ( ) ; } else if ( cmd . getOptionValue ( "output" ) . equals ( "JSON" ) ) { output = parser . getJSON ( ) ; } System . out . println ( output ) ; } } finally { br . close ( ) ; } } catch ( NullPointerException e ) { System . out . println ( "Please call the program with the following arguments: " + "\n" + "-inputHELM <" + options . getOption ( "inputHELM" ) . getDescription ( ) + ">\n" + "-output <" + options . getOption ( "output" ) . getDescription ( ) + ">\n-translate(optional) <" + options . getOption ( "translate" ) . getDescription ( ) + ">" ) ; } catch ( ParseException exp ) { System . out . println ( "Unexpected exception: " + exp . getMessage ( ) ) ; } }
main method to run a single HELM2Parser from the command line