MATSIM
ModalAnnotationCreator.java
Go to the documentation of this file.
1 /*
2  * *********************************************************************** *
3  * project: org.matsim.*
4  * *********************************************************************** *
5  * *
6  * copyright : (C) 2021 by the members listed in the COPYING, *
7  * LICENSE and WARRANTY file. *
8  * email : info at matsim dot org *
9  * *
10  * *********************************************************************** *
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * See also COPYING, LICENSE and WARRANTY file *
17  * *
18  * *********************************************************************** *
19  */
20 
21 package org.matsim.core.modal;
22 
23 import java.lang.annotation.Annotation;
24 
25 import com.google.inject.Key;
26 import com.google.inject.TypeLiteral;
27 
31 public interface ModalAnnotationCreator<M extends Annotation> {
32  M mode(String mode);
33 
34  default <T> Key<T> key(Class<T> type, String mode) {
35  return Key.get(type, mode(mode));
36  }
37 
38  default <T> Key<T> key(TypeLiteral<T> typeLiteral, String mode) {
39  return Key.get(typeLiteral, mode(mode));
40  }
41 }
default< T > Key< T > key(TypeLiteral< T > typeLiteral, String mode)
default< T > Key< T > key(Class< T > type, String mode)