]> git.argeo.org Git - gpl/argeo-jcr.git/blob - org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentNamespace.java
Optimisation and caching
[gpl/argeo-jcr.git] / org.argeo.cms.jcr / src / org / argeo / cms / jcr / acr / JcrContentNamespace.java
1 package org.argeo.cms.jcr.acr;
2
3 import java.net.MalformedURLException;
4 import java.net.URL;
5 import java.util.Objects;
6
7 import org.argeo.api.acr.spi.ContentNamespace;
8
9 /** JCR-specific content namespaces. */
10 public enum JcrContentNamespace implements ContentNamespace {
11 //
12 // ARGEO
13 //
14 JCRX("jcrx", "http://www.argeo.org/ns/jcrx", null, null),
15 //
16 // EXTERNAL
17 //
18 JCR("jcr", "http://www.jcp.org/jcr/1.0", null,
19 "https://jackrabbit.apache.org/archive/wiki/JCR/NamespaceRegistry_115513459.html"),
20 //
21 JCR_MIX("mix", "http://www.jcp.org/jcr/mix/1.0", null,
22 "https://jackrabbit.apache.org/archive/wiki/JCR/NamespaceRegistry_115513459.html"),
23 //
24 JCR_NT("nt", "http://www.jcp.org/jcr/nt/1.0", null,
25 "https://jackrabbit.apache.org/archive/wiki/JCR/NamespaceRegistry_115513459.html"),
26 //
27 JACKRABBIT("rep", "internal", null,
28 "https://jackrabbit.apache.org/archive/wiki/JCR/NamespaceRegistry_115513459.html"),
29 //
30 ;
31
32 private final static String RESOURCE_BASE = "/org/argeo/cms/jcr/acr/schemas/";
33
34 private String defaultPrefix;
35 private String namespace;
36 private URL resource;
37 private URL publicUrl;
38
39 JcrContentNamespace(String defaultPrefix, String namespace, String resourceFileName, String publicUrl) {
40 Objects.requireNonNull(namespace);
41 this.defaultPrefix = defaultPrefix;
42 Objects.requireNonNull(namespace);
43 this.namespace = namespace;
44 if (resourceFileName != null) {
45 resource = getClass().getResource(RESOURCE_BASE + resourceFileName);
46 Objects.requireNonNull(resource);
47 }
48 if (publicUrl != null)
49 try {
50 this.publicUrl = new URL(publicUrl);
51 } catch (MalformedURLException e) {
52 throw new IllegalArgumentException("Cannot interpret public URL", e);
53 }
54 }
55
56 @Override
57 public String getDefaultPrefix() {
58 return defaultPrefix;
59 }
60
61 @Override
62 public String getNamespaceURI() {
63 return namespace;
64 }
65
66 @Override
67 public URL getSchemaResource() {
68 return resource;
69 }
70
71 public URL getPublicUrl() {
72 return publicUrl;
73 }
74
75 }