improved PHP Scanner
[phpeclipse.git] / net.sourceforge.phpeclipse / src / test / PHPParserManager.java
1 package test;
2
3 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
4 import org.eclipse.core.resources.IFile;
5
6 public class PHPParserManager {
7
8   private static PHPParserSuperclass parser;
9
10   public static PHPParserSuperclass getParser(IFile fileToParse) {
11     try {
12       PHPParserSuperclass actualParser;
13       if (PHPeclipsePlugin.PHPPARSER == PHPeclipsePlugin.PHPPARSER_ORIGINAL) {
14         actualParser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance();
15       } else {
16         if (parser == null) {
17           parser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance();
18         }
19         actualParser = parser;
20       }
21       actualParser.setFileToParse(fileToParse);
22       return actualParser;
23     } catch (InstantiationException e) {
24       PHPeclipsePlugin.log(e);
25     } catch (IllegalAccessException e) {
26       PHPeclipsePlugin.log(e);
27     } catch (ClassNotFoundException e) {
28       PHPeclipsePlugin.log(e);
29     }
30     return null;
31   }
32
33   public static PHPParserSuperclass getParser() {
34     try {
35       PHPParserSuperclass actualParser;
36       if (PHPeclipsePlugin.PHPPARSER == PHPeclipsePlugin.PHPPARSER_ORIGINAL) {
37         actualParser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance();
38       } else {
39         if (parser == null) {
40           parser = (PHPParserSuperclass) Class.forName(PHPeclipsePlugin.PHPPARSER).newInstance();
41         }
42         actualParser = parser;
43       }
44       return actualParser;
45     } catch (InstantiationException e) {
46       PHPeclipsePlugin.log(e);
47     } catch (IllegalAccessException e) {
48       PHPeclipsePlugin.log(e);
49     } catch (ClassNotFoundException e) {
50       PHPeclipsePlugin.log(e);
51     }
52     return null;
53   }
54
55   /**
56    * To avoid instantiation.
57    */
58   private PHPParserManager() {
59   }
60 }