1
2
3
4 package net.sourceforge.pmd.lang.xpath;
5
6 import net.sf.saxon.sxpath.IndependentContext;
7 import net.sourceforge.pmd.lang.Language;
8 import net.sourceforge.pmd.lang.LanguageVersion;
9 import net.sourceforge.pmd.lang.LanguageVersionHandler;
10 import net.sourceforge.pmd.lang.java.xpath.GetCommentOnFunction;
11 import net.sourceforge.pmd.lang.java.xpath.TypeOfFunction;
12
13
14
15
16
17
18
19 public class Initializer {
20
21
22
23
24 public static void initialize() {
25
26 }
27
28
29
30
31 public static void initialize(IndependentContext context) {
32 context.declareNamespace("pmd", "java:" + PMDFunctions.class.getName());
33 for (Language language : Language.values()) {
34 for (LanguageVersion languageVersion : language.getVersions()) {
35 LanguageVersionHandler languageVersionHandler = languageVersion.getLanguageVersionHandler();
36 if (languageVersionHandler != null) {
37 languageVersionHandler.getXPathHandler().initialize(context);
38 }
39 }
40 }
41 }
42
43 static {
44 initializeGlobal();
45 initializeLanguages();
46 }
47
48 private static void initializeGlobal() {
49 GetCommentOnFunction.registerSelfInSimpleContext();
50 MatchesFunction.registerSelfInSimpleContext();
51 TypeOfFunction.registerSelfInSimpleContext();
52 }
53
54 private static void initializeLanguages() {
55 for (Language language : Language.values()) {
56 for (LanguageVersion languageVersion : language.getVersions()) {
57 LanguageVersionHandler languageVersionHandler = languageVersion.getLanguageVersionHandler();
58 if (languageVersionHandler != null) {
59 languageVersionHandler.getXPathHandler().initialize();
60 }
61 }
62 }
63 }
64 }