aboutsummaryrefslogtreecommitdiff
path: root/library/src/main/java/com/davemorrissey/labs/subscaleview/decoder/DecoderFactory.java
blob: 8bb5c160cd02f06bb8613256e80e987146d2b2bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.davemorrissey.labs.subscaleview.decoder;

import java.lang.reflect.InvocationTargetException;

/**
 * Interface for decoder (and region decoder) factories.
 * @param <T> the class of decoder that will be produced.
 */
public interface DecoderFactory<T> {
  /**
   * Produce a new instance of a decoder with type {@link T}.
   * @return a new instance of your decoder.
   * @throws IllegalAccessException if the factory class cannot be instantiated.
   * @throws InstantiationException if the factory class cannot be instantiated.
   * @throws NoSuchMethodException if the factory class cannot be instantiated.
   * @throws InvocationTargetException if the factory class cannot be instantiated.
   */
  T make() throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException;
}