--- /dev/null
+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() {
+ }
+}