Bug 1459-2 - Re-organize mdsal-binding2-spec
[mdsal.git] / binding2 / mdsal-binding2-spec / src / main / java / org / opendaylight / mdsal / binding / javav2 / spec / structural / TreeChildNode.java
1 /*
2  * Copyright (c) 2017 Cisco Systems, Inc. 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
9 package org.opendaylight.mdsal.binding.javav2.spec.structural;
10
11 import com.google.common.annotations.Beta;
12 import org.opendaylight.mdsal.binding.javav2.spec.base.TreeArgument;
13 import org.opendaylight.mdsal.binding.javav2.spec.base.TreeNode;
14 import org.opendaylight.yangtools.util.ClassLoaderUtils;
15
16 /**
17  *
18  * Replaces org.opendaylight.yangtools.yang.binding.ChildOf from Binding Spec v1
19  */
20 @Beta
21 public interface TreeChildNode<P extends TreeNode, I extends TreeArgument<?>> extends TreeNode {
22
23     I treeIdentifier();
24
25
26     // REPLACES: BindingReflections#findHierarchicalParent()
27     default Class<P> treeParent() {
28         return ClassLoaderUtils.findFirstGenericArgument(getClass(), TreeChildNode.class);
29     }
30
31 }