Merge branch 'master' of ../controller
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / AbstractNamespaceCodec.java
index 8e942ee499991c692e197575d9defb0a903df84c..d92c9eb28a8990a49ad17cef4714ecd7dea82337 100644 (file)
@@ -12,12 +12,13 @@ import static com.google.common.base.Preconditions.checkArgument;
 import com.google.common.base.Splitter;
 import java.net.URI;
 import java.util.Iterator;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 
-abstract class AbstractNamespaceCodec {
+abstract class AbstractNamespaceCodec<T> extends AbstractIllegalArgumentCodec<String, T> {
     private static final Splitter COLON_SPLITTER = Splitter.on(':');
 
     /**
@@ -26,7 +27,7 @@ abstract class AbstractNamespaceCodec {
      * @param namespace Namespace to map
      * @return Allocated unique prefix, or null if the prefix cannot be mapped.
      */
-    @Nullable protected abstract String prefixForNamespace(@Nonnull URI namespace);
+    protected abstract @Nullable String prefixForNamespace(@NonNull URI namespace);
 
     /**
      * Create a QName for a prefix and local name.
@@ -36,18 +37,17 @@ abstract class AbstractNamespaceCodec {
      * @return QName
      * @throws IllegalArgumentException if the prefix cannot be resolved
      */
-    @Nullable protected abstract QName createQName(@Nonnull String prefix, @Nonnull String localName);
+    protected abstract @Nullable QName createQName(@NonNull String prefix, @NonNull String localName);
 
     private static String getIdAndPrefixAsStr(final String pathPart) {
         int predicateStartIndex = pathPart.indexOf('[');
         return predicateStartIndex == -1 ? pathPart : pathPart.substring(0, predicateStartIndex);
     }
 
-    protected final StringBuilder appendQName(final StringBuilder sb, final QName qname) {
+    protected final @NonNull StringBuilder appendQName(final StringBuilder sb, final QName qname) {
         final String prefix = prefixForNamespace(qname.getNamespace());
         checkArgument(prefix != null, "Failed to map QName %s to prefix", qname);
-        sb.append(prefix).append(':').append(qname.getLocalName());
-        return sb;
+        return sb.append(prefix).append(':').append(qname.getLocalName());
     }
 
     /**