1 18 package org.codehaus.groovy.control; 19 20 import org.codehaus.groovy.antlr.AntlrParserPluginFactory; 21 22 27 public abstract class ParserPluginFactory { 28 public static ParserPluginFactory newInstance(boolean useNewParser) { 29 if (useNewParser) { 30 Class type = null; 31 String name = "org.codehaus.groovy.antlr.AntlrParserPluginFactory"; 32 try { 33 type = Class.forName(name); 34 } 35 catch (ClassNotFoundException e) { 36 try { 37 type = ParserPluginFactory.class.getClassLoader().loadClass(name); 38 } 39 catch (ClassNotFoundException e1) { 40 ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); 41 if (contextClassLoader != null) { 42 try { 43 type = contextClassLoader.loadClass(name); 44 } 45 catch (ClassNotFoundException e2) { 46 } 48 } 49 } 50 } 51 52 if (type != null) { 53 try { 54 return (ParserPluginFactory) type.newInstance(); 55 } 56 catch (Exception e) { 57 throw new RuntimeException ("Could not create AntlrParserPluginFactory: " + e, e); 58 } 59 } 60 } 62 return new AntlrParserPluginFactory(); 63 } 64 65 public abstract ParserPlugin createParserPlugin(); 66 } 67 | Popular Tags |