| 1 package net.sf.invicta.project; 2 3 import java.io.File ; 4 import java.io.FileInputStream ; 5 import java.io.FileNotFoundException ; 6 import net.sf.invicta.util.BetterDigester; 7 import net.sf.invicta.util.DTDEntityResolver; 8 9 10 14 public class ProjectDefinitionLoader { 15 16 17 protected BetterDigester reader = new BetterDigester(); 18 19 20 23 public ProjectDefinitionLoader() { 24 super(); 25 26 this.reader.setValidating(true); 28 29 this.reader.addRuleSet(new ProjectDefinitionRuleSet()); 31 32 this.reader.setEntityResolver(new DTDEntityResolver()); 33 34 } 35 36 44 public ProjectDefinition load(String fileName) throws InvictaProjectException { 45 46 File resourceFile = new File (fileName); 48 FileInputStream inputStream; 49 try { 50 inputStream = new FileInputStream (resourceFile); 51 } catch (FileNotFoundException e) { 52 throw new InvictaProjectException("Project Definition file not found:" + fileName); 53 } 54 55 this.reader.clearWithErrors(); 56 57 ProjectDefinition result; 59 try { 60 result = (ProjectDefinition) reader.parse(inputStream); 61 } catch (Exception e) { 62 throw new InvictaProjectException("Project definition error: " + e.getMessage()); 63 } 64 65 if (reader.getNumberOfErrors() > 0) 66 throw new InvictaProjectException("Error in loading project definition file '" + fileName +"'"); 67 68 69 return result; 70 } 71 72 } 73 | Popular Tags |