@Override
 public void encountered(Class<?> proxyType, Method method, Object[] args) {
   if (inConstructor > 0) return;
   if (PropertyResolver.ACCESSORS.isValid(method)) {
     String propertyName =
         config.getSourceNameTransformer().transform(method.getName(), NameableType.METHOD);
     Accessor propInfo =
         PropertyInfoRegistry.accessorFor(proxyType, method, config, propertyName);
     propertyInfo.add(propInfo);
   } else builder.errors.invalidSourceMethod(method);
 }
 @Override
 public void encountered(Class<?> proxyType, Method method, Object[] args) {
   if (PropertyResolver.MUTATORS.isValid(method)) {
     String propertyName =
         config.getDestinationNameTransformer().transform(method.getName(), NameableType.METHOD);
     propertyInfo.add(PropertyInfoRegistry.mutatorFor(proxyType, method, config, propertyName));
     argument = args.length == 1 ? args[0] : null;
     if (argument != null && argument == builder.source) builder.errors.missingSource();
     builder.saveMapping();
   } else if (PropertyResolver.ACCESSORS.isValid(method)) {
     // Find mutator corresponding to accessor
     Mutator mutator =
         TypeInfoRegistry.typeInfoFor(proxyType, config)
             .mutatorForAccessorMethod(method.getName());
     if (mutator != null) propertyInfo.add(mutator);
     else builder.errors.missingMutatorForAccessor(method);
   } else builder.errors.invalidDestinationMethod(method);
 }