2 * Copyright (c) 2017 Pantheon Technologies, s.r.o. 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.impl;
10 import static java.util.Objects.requireNonNull;
12 import com.google.common.collect.SetMultimap;
13 import java.io.IOException;
14 import java.util.Collection;
15 import java.util.List;
17 import org.eclipse.jdt.annotation.NonNull;
18 import org.opendaylight.yangtools.yang.common.QName;
19 import org.opendaylight.yangtools.yang.common.QNameModule;
20 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
21 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
22 import org.opendaylight.yangtools.yang.model.parser.api.YangParser;
23 import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
24 import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
25 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
27 @Deprecated(since = "7.0.0", forRemoval = true)
28 final class YangParserImpl implements YangParser {
29 private final org.opendaylight.yangtools.yang.parser.api.YangParser delegate;
31 YangParserImpl(final org.opendaylight.yangtools.yang.parser.api.YangParser yangParser) {
32 this.delegate = requireNonNull(yangParser);
36 public @NonNull Set<QName> supportedStatements() {
37 // TODO Auto-generated method stub
42 public @NonNull Collection<Class<? extends SchemaSourceRepresentation>> supportedSourceRepresentations() {
43 return delegate.supportedSourceRepresentations();
47 public @NonNull YangParser addSource(final SchemaSourceRepresentation source) throws IOException,
48 YangSyntaxErrorException {
50 delegate.addSource(source);
51 } catch (org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException e) {
52 throw mapException(e);
58 public @NonNull YangParser addLibSource(final SchemaSourceRepresentation source) throws IOException,
59 YangSyntaxErrorException {
61 delegate.addLibSource(source);
62 } catch (org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException e) {
63 throw mapException(e);
69 public @NonNull YangParser setSupportedFeatures(final Set<QName> supportedFeatures) {
70 delegate.setSupportedFeatures(supportedFeatures);
75 public @NonNull YangParser setModulesWithSupportedDeviations(
76 final SetMultimap<QNameModule, QNameModule> modulesDeviatedByModules) {
77 delegate.setModulesWithSupportedDeviations(modulesDeviatedByModules);
82 public @NonNull List<DeclaredStatement<?>> buildDeclaredModel() throws YangParserException {
84 return delegate.buildDeclaredModel();
85 } catch (org.opendaylight.yangtools.yang.parser.api.YangParserException e) {
86 throw mapException(e);
91 public @NonNull EffectiveModelContext buildEffectiveModel() throws YangParserException {
93 return delegate.buildEffectiveModel();
94 } catch (org.opendaylight.yangtools.yang.parser.api.YangParserException e) {
95 throw mapException(e);
99 private static YangParserException mapException(
100 final org.opendaylight.yangtools.yang.parser.api.YangParserException ex) {
101 return new YangParserException(ex.getMessage(), ex);
104 private static YangSyntaxErrorException mapException(
105 final org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException ex) {
106 return new YangSyntaxErrorException(ex.getSource().orElse(null), ex.getLine(), ex.getCharPositionInLine(),
107 ex.getMessage(), ex);