package com.brightgenerous.injection; import com.brightgenerous.lang.Args; public class ReplaceAllImplResolver implements ImplResolver { private static final long serialVersionUID = -3106461902151108835L; private final String regex; private final String replacement; public ReplaceAllImplResolver(String regex, String replacement) { Args.notNull(regex, "regex"); Args.notNull(replacement, "replacement"); this.regex = regex; this.replacement = replacement; } @Override public <T> Class<? extends T> getImplClass(Class<T> clazz) { if (clazz == null) { return null; } String cName = clazz.getName(); if (cName == null) { return null; } try { return (Class<? extends T>) Class.forName(cName.replaceAll(regex, replacement)); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } }