Merge "BUG-509: improve memory efficiency of ListenerTree"
[controller.git] / opendaylight / sal / yang-prototype / concepts-lang / src / main / java / org / opendaylight / controller / concepts / lang / InputClassBasedTransformer.java
1 /*
2  * Copyright (c) 2013 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.controller.concepts.lang;
10 /**
11  * Input class based transformer
12  *
13  * {@link Transformer} which accepts / transforms only specific classes of
14  * input, and is useful if the selection of transformer should be based on the
15  * class of the input and there is one-to-one mapping between input class and
16  * transformer.
17  *
18  *
19  * @author Tony Tkacik
20  *
21  * @param <S>
22  *            Common supertype of input
23  * @param <I>
24  *            Concrete type of input
25  * @param <P>
26  *            Product
27  */
28 public interface InputClassBasedTransformer<S, I extends S, P> extends
29         Transformer<I, P> {
30
31     /**
32      * Returns an {@link Class} of input which is acceptable for transformation.
33      *
34      * @return {@link Class} of input which is acceptable for transformation.
35      */
36     Class<? extends S> getInputClass();
37 }