@Override public ChangeApplicator createApplicatorFor(final TCClass clazz) { final Class applicatorClazz = this.config.getChangeApplicator(clazz.getPeerClass()); if (applicatorClazz == null) { return new BaseApplicator(this.encoding); } TCLogger logger = TCLogging.getLogger(ChangeApplicator.class.getName() + "." + applicatorClazz.getName()); try { Constructor cstr = applicatorClazz.getConstructor(APPLICATOR_CSTR_SIGNATURE); Object[] params = new Object[] { encoding, logger }; return (ChangeApplicator) cstr.newInstance(params); } catch (final Exception e) { throw new AssertionError(e); } } }