Search in sources :

Example 1 with VerifierInfo

use of com.twitter.common.args.apt.Configuration.VerifierInfo in project commons by twitter.

the class Verifiers method fromConfiguration.

static Verifiers fromConfiguration(Configuration configuration) {
    ImmutableMap.Builder<Pair<Class<?>, Class<? extends Annotation>>, Verifier<?>> registry = ImmutableMap.builder();
    for (VerifierInfo info : configuration.verifierInfo()) {
        Class<?> verifiedType = forName(info.verifiedType);
        Class<? extends Annotation> verifyingAnnotation = forName(info.verifyingAnnotation);
        Class<? extends Verifier<?>> verifierClass = forName(info.verifierClass);
        try {
            registry.put(Pair.<Class<?>, Class<? extends Annotation>>of(verifiedType, verifyingAnnotation), verifierClass.newInstance());
        } catch (InstantiationException e) {
            throw new ConfigurationException(e);
        } catch (IllegalAccessException e) {
            throw new ConfigurationException(e);
        }
    }
    return new Verifiers(registry.build());
}
Also used : VerifierInfo(com.twitter.common.args.apt.Configuration.VerifierInfo) ConfigurationException(com.twitter.common.args.apt.Configuration.ConfigurationException) ImmutableMap(com.google.common.collect.ImmutableMap) Pair(com.twitter.common.collections.Pair)

Aggregations

ImmutableMap (com.google.common.collect.ImmutableMap)1 ConfigurationException (com.twitter.common.args.apt.Configuration.ConfigurationException)1 VerifierInfo (com.twitter.common.args.apt.Configuration.VerifierInfo)1 Pair (com.twitter.common.collections.Pair)1