X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserManager.java b/net.sourceforge.phpeclipse/src/test/PHPParserManager.java new file mode 100644 index 0000000..e958ec6 --- /dev/null +++ b/net.sourceforge.phpeclipse/src/test/PHPParserManager.java @@ -0,0 +1,60 @@ +package test; + +import net.sourceforge.phpeclipse.PHPeclipsePlugin; +import org.eclipse.core.resources.IFile; + +public class PHPParserManager { + + private static PHPParserSuperclass parser; + + public static PHPParserSuperclass getParser(IFile fileToParse) { + try { + PHPParserSuperclass actualParser; + if (PHPeclipsePlugin.PHPPARSER == PHPeclipsePlugin.PHPPARSER_ORIGINAL) { + actualParser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance(); + } else { + if (parser == null) { + parser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance(); + } + actualParser = parser; + } + actualParser.setFileToParse(fileToParse); + return actualParser; + } catch (InstantiationException e) { + PHPeclipsePlugin.log(e); + } catch (IllegalAccessException e) { + PHPeclipsePlugin.log(e); + } catch (ClassNotFoundException e) { + PHPeclipsePlugin.log(e); + } + return null; + } + + public static PHPParserSuperclass getParser() { + try { + PHPParserSuperclass actualParser; + if (PHPeclipsePlugin.PHPPARSER == PHPeclipsePlugin.PHPPARSER_ORIGINAL) { + actualParser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance(); + } else { + if (parser == null) { + parser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance(); + } + actualParser = parser; + } + return actualParser; + } catch (InstantiationException e) { + PHPeclipsePlugin.log(e); + } catch (IllegalAccessException e) { + PHPeclipsePlugin.log(e); + } catch (ClassNotFoundException e) { + PHPeclipsePlugin.log(e); + } + return null; + } + + /** + * To avoid instantiation. + */ + private PHPParserManager() { + } +}