2 * Copyright (c) 2016 Intel Corporation and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.yangtools.yang.data.util;
11 import com.google.common.base.Preconditions;
13 import javax.annotation.Nonnull;
15 import org.opendaylight.yangtools.yang.common.QNameModule;
16 import org.opendaylight.yangtools.yang.data.api.codec.IdentityrefCodec;
17 import org.opendaylight.yangtools.yang.model.api.Module;
18 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
20 public abstract class ModuleStringIdentityrefCodec
21 extends AbstractModuleStringIdentityrefCodec
22 implements IdentityrefCodec<String> {
23 protected final SchemaContext context;
24 protected final QNameModule parentModuleQname;
26 public ModuleStringIdentityrefCodec(@Nonnull final SchemaContext context, @Nonnull final QNameModule parentModule) {
27 this.context = Preconditions.checkNotNull(context);
28 this.parentModuleQname = Preconditions.checkNotNull(parentModule);
32 protected String prefixForNamespace(@Nonnull final URI namespace) {
33 final Module module = context.findModuleByNamespaceAndRevision(namespace, null);
34 return module == null ? null : module.getName();