2 * Copyright (c) 2015 Cisco Systems, Inc. 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
8 package org.opendaylight.yangtools.yang.parser.spi.source;
11 import java.net.URISyntaxException;
12 import java.util.HashMap;
14 import javax.annotation.Nonnull;
15 import javax.annotation.Nullable;
16 import javax.annotation.concurrent.NotThreadSafe;
17 import org.opendaylight.yangtools.yang.common.QNameModule;
20 public class PrefixToModuleMap implements PrefixToModule {
21 private final Map<String, QNameModule> prefixToModuleMap = new HashMap<>();
22 private final Map<URI, QNameModule> namespaceToModuleMap = new HashMap<>();
23 private final boolean preLinkageMap;
25 public PrefixToModuleMap() {
29 public PrefixToModuleMap(boolean preLinkageMap) {
30 this.preLinkageMap = preLinkageMap;
33 public void put(String prefix, QNameModule module) {
34 prefixToModuleMap.put(prefix, module);
35 namespaceToModuleMap.put(module.getNamespace(), module);
40 public QNameModule get(@Nonnull String prefix) {
41 return prefixToModuleMap.get(prefix);
46 public QNameModule getByNamespace(String namespace) throws URISyntaxException {
47 return namespaceToModuleMap.get(new URI(namespace));
51 public boolean isPreLinkageMap() {