Introduce AbstractAugmentable
[mdsal.git] / binding / yang-binding / src / main / java / org / opendaylight / yangtools / yang / binding / AugmentationHolder.java
1 /*
2  * Copyright (c) 2015 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 package org.opendaylight.yangtools.yang.binding;
9
10 import java.util.Map;
11
12 /**
13  * Augmentable (extensible) object which could carry additional data defined by third-party extension, without
14  * introducing conflict between various extension.
15  *
16  * @param <T>
17  *            Base class which should is target
18  *            for augmentations.
19  * @author Tony Tkacik
20  */
21 public interface AugmentationHolder<T> {
22     /**
23      * Returns map of all augmentations.
24      *
25      * @return map of all augmentations.
26      */
27     Map<Class<? extends Augmentation<T>>, Augmentation<T>> augmentations();
28 }