]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.api.acr/src/org/argeo/api/acr/AttributeFormatter.java
Merge tag 'v2.3.23' into testing
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / AttributeFormatter.java
index 41600331a21b756b634280c09ef70ab40aeb7af1..9f338965f829d2781649cb7fe192f9e2afa11a28 100644 (file)
@@ -1,16 +1,25 @@
 package org.argeo.api.acr;
 
+import javax.xml.namespace.NamespaceContext;
+
 /**
  * An attribute type MUST consistently parse a string to an object so that
  * <code>parse(obj.toString()).equals(obj)</code> is verified.
  * {@link #format(Object)} can be overridden to provide more efficient
- * implementations but the returned
- * <code>String<code> MUST be the same, that is <code>format(obj).equals(obj.toString())</code>
- * is verified.
+ * implementations but the returned <code>String</code> MUST be the same, that
+ * is <code>format(obj).equals(obj.toString())</code> is verified.
  */
 public interface AttributeFormatter<T> {
        /** Parses a String to a Java object. */
-       T parse(String str) throws IllegalArgumentException;
+       default T parse(String str) throws IllegalArgumentException {
+               return parse(RuntimeNamespaceContext.getNamespaceContext(), str);
+       }
+
+       /**
+        * Parses a String to a Java object, possibly using the namespace context to
+        * resolve QName or CURIE.
+        */
+       T parse(NamespaceContext namespaceContext, String str) throws IllegalArgumentException;
 
        /** Default implementation returns {@link Object#toString()} on the argument. */
        default String format(T obj) {