*/
package org.opendaylight.yangtools.yang.parser.spi.source;
-import org.opendaylight.yangtools.yang.common.QNameModule;
-
-import javax.annotation.Nullable;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;
+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
@Nullable
@Override
- public QNameModule getByNamespace(String namespace) {
- return null;
+ public QNameModule getByNamespace(String namespace) throws URISyntaxException {
+ return namespaceToModuleMap.get(new URI(namespace));
+ }
+
+ @Override
+ public boolean isPreLinkageMap() {
+ return preLinkageMap;
}
}