]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.entity.api/src/org/argeo/entity/JcrName.java
Merge remote-tracking branch 'origin/sleroy'
[gpl/argeo-suite.git] / org.argeo.entity.api / src / org / argeo / entity / JcrName.java
1 package org.argeo.entity;
2
3 /** Can be applied to {@link Enum}s in order to generate prefixed names. */
4 public interface JcrName {
5 String name();
6
7 default String getPrefix() {
8 return null;
9 }
10
11 default String getNamespace() {
12 return null;
13 }
14
15 default String get() {
16 String prefix = getPrefix();
17 return prefix != null ? prefix + ":" + name() : name();
18 }
19
20 default String withNamespace() {
21 String namespace = getNamespace();
22 if (namespace == null)
23 throw new UnsupportedOperationException("No namespace is specified for " + getClass());
24 return "{" + namespace + "}" + name();
25 }
26 }