2 * Copyright (c) 2021 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.restconf.nb.rfc8040;
10 import org.eclipse.jdt.annotation.NonNull;
11 import org.opendaylight.yangtools.concepts.Immutable;
14 * Interface implemented by all Java classes which represent a
15 * <a href="https://datatracker.ietf.org/doc/html/rfc8040#section-4.8">RESTCONF query parameter</a>.
17 // FIXME: sealed when we have JDK17+?
18 public interface RestconfQueryParam<T extends RestconfQueryParam<T>> extends Immutable {
20 * Return the Java representation class.
22 * @return the Java representation class
24 @NonNull Class<@NonNull T> javaClass();
27 * Return the URI Request parameter name.
29 * @return the URI Request parameter name.
31 @NonNull String paramName();
34 * Return the URI Request parameter value.
36 * @return the URI Request parameter value.
38 @NonNull String paramValue();