/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * 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.parser.spi.source; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.common.QNameModule; public class PrefixToModuleMap implements PrefixToModule { private Map<String, QNameModule> prefixToModuleMap = new HashMap<>(); private Map<URI, QNameModule> namespaceToModuleMap = new HashMap<>(); private final boolean preLinkageMap; public PrefixToModuleMap() { this(false); } public PrefixToModuleMap(boolean preLinkageMap) { this.preLinkageMap = preLinkageMap; } public void put(String prefix, QNameModule qNameModule) { prefixToModuleMap.put(prefix, qNameModule); namespaceToModuleMap.put(qNameModule.getNamespace(), qNameModule); } @Nullable @Override public QNameModule get(@Nonnull String prefix) { return prefixToModuleMap.get(prefix); } @Nullable @Override public QNameModule getByNamespace(String namespace) throws URISyntaxException { return namespaceToModuleMap.get(new URI(namespace)); } @Override public boolean isPreLinkageMap() { return preLinkageMap; } }