1 25 package classycle.dependency; 26 27 import java.io.File ; 28 import java.io.IOException ; 29 30 import classycle.CommandLine; 31 import classycle.util.Text; 32 33 36 public class DependencyCheckerCommandLine extends CommandLine 37 { 38 private static final String DEPENDENCIES = "-dependencies=", 39 RENDERER = "-renderer="; 40 41 private String _dependencyDefinition; 42 private ResultRenderer _renderer = new DefaultResultRenderer(); 43 44 public DependencyCheckerCommandLine(String [] args) 45 { 46 super(args); 47 } 48 49 protected void handleOption(String argument) 50 { 51 if (argument.startsWith(DEPENDENCIES)) 52 { 53 handleDependenciesOption(argument.substring(DEPENDENCIES.length())); 54 } else if (argument.startsWith(RENDERER)) { 55 handleRenderer(argument.substring(RENDERER.length())); 56 } else { 57 super.handleOption(argument); 58 } 59 } 60 61 62 public String getUsage() 63 { 64 return DEPENDENCIES + "<description>|@<description file> " 65 + "[" + RENDERER + "<fully qualified class name of a ResultRenderer>] " 66 + super.getUsage(); 67 } 68 69 public String getDependencyDefinition() 70 { 71 return _dependencyDefinition; 72 } 73 74 public ResultRenderer getRenderer() 75 { 76 return _renderer; 77 } 78 79 private void handleDependenciesOption(String option) 80 { 81 if (option.startsWith("@")) 82 { 83 try 84 { 85 option = Text.readTextFile(new File (option.substring(1))); 86 } catch (IOException e) 87 { 88 System.err.println("Error in reading dependencies description file: " 89 + e); 90 option = ""; 91 } 92 } 93 _dependencyDefinition = option; 94 if (_dependencyDefinition.length() == 0) 95 { 96 _valid = false; 97 } 98 } 99 100 private void handleRenderer(String className) { 101 try 102 { 103 _renderer = (ResultRenderer) Class.forName(className).newInstance(); 104 } catch (Exception e) 105 { 106 System.err.println("Error in creating ResultRenderer " + className 107 + ": " + e); 108 _valid = false; 109 } 110 } 111 112 public boolean isValid() 113 { 114 return super.isValid() && _dependencyDefinition != null; 115 } 116 } 117 | Popular Tags |