6d565a26a4e9123fe9828535ab3141aa2bbff39e
[mdsal.git] / binding / mdsal-binding-runtime-api / src / main / java / org / opendaylight / mdsal / binding / runtime / api / CompositeRuntimeType.java
1 /*
2  * Copyright (c) 2021 PANTHEON.tech, s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.mdsal.binding.runtime.api;
9
10 import com.google.common.annotations.Beta;
11 import java.util.List;
12 import org.eclipse.jdt.annotation.NonNull;
13
14 /**
15  * A {@link RuntimeType} which is also a {@link RuntimeTypeContainer}.
16  */
17 @Beta
18 public interface CompositeRuntimeType extends GeneratedRuntimeType, RuntimeTypeContainer {
19     /**
20      * Return the {@link AugmentRuntimeType}s extending this type, matching the underlying {@link #statement()}.
21      *
22      * @return {@link AugmentRuntimeType}s extending this type.
23      */
24     @NonNull List<AugmentRuntimeType> augments();
25
26     /**
27      * Return the {@link AugmentRuntimeType}s extending extending a namesake of this type.
28      *
29      * @return {@link AugmentRuntimeType}s extending a namesake of this type.
30      */
31     @NonNull List<AugmentRuntimeType> mismatchedAugments();
32 }