2 * Copyright (c) 2020 PANTHEON.tech, 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.spi.meta;
10 import com.google.common.annotations.Beta;
11 import org.eclipse.jdt.annotation.Nullable;
12 import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
13 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
14 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
15 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
16 import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
17 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
20 * Specialization of {@link AbstractStatementSupport} for Unqualified statement arguments. Note this (mostly) implies
21 * context-independence.
23 * @param <D> Declared Statement representation
24 * @param <E> Effective Statement representation
27 public abstract class AbstractUnqualifiedStatementSupport<D extends DeclaredStatement<Unqualified>,
28 E extends EffectiveStatement<Unqualified, D>> extends AbstractStatementSupport<Unqualified, D, E> {
29 protected AbstractUnqualifiedStatementSupport(final StatementDefinition publicDefinition,
30 final StatementPolicy<Unqualified, D> policy, final YangParserConfiguration config,
31 final @Nullable SubstatementValidator validator) {
32 super(publicDefinition, policy, config, validator);
36 public final Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
38 return Unqualified.of(value).intern();
39 } catch (IllegalArgumentException e) {
40 throw new SourceException(ctx, e, "Invalid argument value \"%s\"", value);