X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Futil%2FModuleStringIdentityrefCodec.java;h=9a22d7cdda041975cc2a80db955d7300d6780135;hb=c8668229ad6e73d5ae03a52f4b87e8e4d2a67c6e;hp=a7b3f23c543a8d357cdf63dfe5f6426e1b82ec79;hpb=ae76efb1486909a2a57102a23b4d0fc7efee95a0;p=yangtools.git diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ModuleStringIdentityrefCodec.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ModuleStringIdentityrefCodec.java index a7b3f23c54..9a22d7cdda 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ModuleStringIdentityrefCodec.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ModuleStringIdentityrefCodec.java @@ -5,32 +5,45 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.data.util; import static java.util.Objects.requireNonNull; +import com.google.common.annotations.Beta; import java.net.URI; import java.util.Iterator; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; -import org.opendaylight.yangtools.yang.data.api.codec.IdentityrefCodec; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider; -public abstract class ModuleStringIdentityrefCodec - extends AbstractModuleStringIdentityrefCodec - implements IdentityrefCodec { - protected final SchemaContext context; - protected final QNameModule parentModuleQname; +/** + * Base class for implementing identityref codecs on based on module names. + */ +@Beta +public abstract class ModuleStringIdentityrefCodec extends AbstractModuleStringIdentityrefCodec + implements SchemaContextProvider { + private final SchemaContext context; + private final QNameModule parentModule; - public ModuleStringIdentityrefCodec(@Nonnull final SchemaContext context, @Nonnull final QNameModule parentModule) { + protected ModuleStringIdentityrefCodec(final @NonNull SchemaContext context, + final @NonNull QNameModule parentModule) { this.context = requireNonNull(context); - this.parentModuleQname = requireNonNull(parentModule); + this.parentModule = requireNonNull(parentModule); + } + + @Override + public final SchemaContext getSchemaContext() { + return context; + } + + protected final QNameModule getParentModule() { + return parentModule; } @Override - protected String prefixForNamespace(@Nonnull final URI namespace) { + protected String prefixForNamespace(final URI namespace) { final Iterator modules = context.findModules(namespace).iterator(); return modules.hasNext() ? modules.next().getName() : null; }