1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.primefaces.extensions.config;
23
24 import javax.faces.context.FacesContext;
25 import javax.servlet.ServletContext;
26
27 import org.primefaces.util.LangUtils;
28
29
30
31
32 public class PrimeExtensionsEnvironment {
33
34 public static final String INSTANCE_KEY = PrimeExtensionsEnvironment.class.getName();
35
36 private final boolean commonmarkAvailable;
37 private final boolean libphonenumberAvailable;
38
39 public PrimeExtensionsEnvironment() {
40 commonmarkAvailable = LangUtils.tryToLoadClassForName("org.commonmark.parser.Parser") != null;
41 libphonenumberAvailable = LangUtils.tryToLoadClassForName("com.google.i18n.phonenumbers.Phonenumber") != null;
42 }
43
44 public static PrimeExtensionsEnvironment getCurrentInstance(FacesContext context) {
45 if (context == null || context.getExternalContext() == null) {
46 return null;
47 }
48
49 PrimeExtensionsEnvironment pfeEnv = getFromContext(context);
50 if (pfeEnv == null) {
51 pfeEnv = new PrimeExtensionsEnvironment();
52 setCurrentInstance(pfeEnv, context);
53 }
54
55 return pfeEnv;
56 }
57
58 private static PrimeExtensionsEnvironment getFromContext(FacesContext context) {
59 return (PrimeExtensionsEnvironment) context.getExternalContext().getApplicationMap().get(INSTANCE_KEY);
60 }
61
62 public static void setCurrentInstance(PrimeExtensionsEnvironment pfeEnv, FacesContext context) {
63 context.getExternalContext().getApplicationMap().put(INSTANCE_KEY, pfeEnv);
64
65 if (context.getExternalContext().getContext() instanceof ServletContext) {
66 ((ServletContext) context.getExternalContext().getContext()).setAttribute(INSTANCE_KEY, pfeEnv);
67 }
68 }
69
70 public boolean isCommonmarkAvailable() {
71 return commonmarkAvailable;
72 }
73
74 public boolean isLibphonenumberAvailable() {
75 return libphonenumberAvailable;
76 }
77
78 }