]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.api/src/org/argeo/app/api/JcrName.java
Adapt to changes in Argeo Commons
[gpl/argeo-suite.git] / org.argeo.app.api / src / org / argeo / app / api / JcrName.java
1 package org.argeo.app.api;
2
3 import java.util.function.Supplier;
4
5 /** Can be applied to {@link Enum}s in order to generate prefixed names. */
6 @FunctionalInterface
7 @Deprecated
8 public interface JcrName extends Supplier<String> {
9 String name();
10
11 default String getPrefix() {
12 return null;
13 }
14
15 default String getNamespace() {
16 return null;
17 }
18
19 @Override
20 default String get() {
21 String prefix = getPrefix();
22 return prefix != null ? prefix + ":" + name() : name();
23 }
24
25 default String withNamespace() {
26 String namespace = getNamespace();
27 if (namespace == null)
28 throw new UnsupportedOperationException("No namespace is specified for " + getClass());
29 return "{" + namespace + "}" + name();
30 }
31 }