X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.entity.api%2Fsrc%2Forg%2Fargeo%2Fentity%2FJcrName.java;fp=org.argeo.entity.api%2Fsrc%2Forg%2Fargeo%2Fentity%2FJcrName.java;h=43057aae3284cbee0c267535bbd1f2d74ee3eafe;hp=0000000000000000000000000000000000000000;hb=702f22eb8cbcb56c927dc21226ee22696426647b;hpb=5aeef7f6fe70d741b66a58eb51cdd2f1bcfdfcf1 diff --git a/org.argeo.entity.api/src/org/argeo/entity/JcrName.java b/org.argeo.entity.api/src/org/argeo/entity/JcrName.java new file mode 100644 index 0000000..43057aa --- /dev/null +++ b/org.argeo.entity.api/src/org/argeo/entity/JcrName.java @@ -0,0 +1,26 @@ +package org.argeo.entity; + +/** Can be applied to {@link Enum}s in order to generate prefixed names. */ +public interface JcrName { + String name(); + + default String getPrefix() { + return null; + } + + default String getNamespace() { + return null; + } + + default String get() { + String prefix = getPrefix(); + return prefix != null ? prefix + ":" + name() : name(); + } + + default String withNamespace() { + String namespace = getNamespace(); + if (namespace == null) + throw new UnsupportedOperationException("No namespace is specified for " + getClass()); + return "{" + namespace + "}" + name(); + } +}