*** empty log message ***
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParserManager.java
diff --git a/net.sourceforge.phpeclipse/src/test/PHPParserManager.java b/net.sourceforge.phpeclipse/src/test/PHPParserManager.java
new file mode 100644 (file)
index 0000000..e958ec6
--- /dev/null
@@ -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() {
+  }
+}