X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yang%2Fyang-data-codec-gson%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fcodec%2Fgson%2FJSONStringIdentityrefCodec.java;h=032553193bcb40d318750b0e203a240cbd5af6bf;hb=c24d6e2f39acbb11e22b5676bb7481ed52bec461;hp=66d55237a567c813d31b1d77d7e3505731ac17b8;hpb=45251e29ed742b620fd05e80ba10557011ce5c72;p=yangtools.git diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringIdentityrefCodec.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringIdentityrefCodec.java index 66d55237a5..032553193b 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringIdentityrefCodec.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringIdentityrefCodec.java @@ -7,30 +7,38 @@ */ package org.opendaylight.yangtools.yang.data.codec.gson; -import com.google.common.base.Preconditions; - -import java.net.URI; - -import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringIdentityrefCodec; +import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.data.util.ModuleStringIdentityrefCodec; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -final class JSONStringIdentityrefCodec extends AbstractModuleStringIdentityrefCodec { - private final SchemaContext context; - - JSONStringIdentityrefCodec(final SchemaContext context) { - this.context = Preconditions.checkNotNull(context); +final class JSONStringIdentityrefCodec extends ModuleStringIdentityrefCodec implements JSONCodec { + JSONStringIdentityrefCodec(final SchemaContext context, final QNameModule parentModule) { + super(context, parentModule); } @Override - protected Module moduleForPrefix(final String prefix) { - return context.findModuleByName(prefix, null); + protected Module moduleForPrefix(@Nonnull final String prefix) { + if (prefix.isEmpty()) { + return context.findModuleByNamespaceAndRevision(parentModuleQname.getNamespace(), + parentModuleQname.getRevision()); + } else { + return context.findModuleByName(prefix, null); + } } + /** + * Serialize QName with specified JsonWriter. + * + * @param writer JsonWriter + * @param value QName + */ @Override - protected String prefixForNamespace(final URI namespace) { - final Module module = context.findModuleByNamespaceAndRevision(namespace, null); - return module == null ? null : module.getName(); + public void serializeToWriter(JsonWriter writer, QName value) throws IOException { + writer.value(serialize(value)); } - }