anchor.diff:  
   [source,java,prettyprint]
   ----
  -public class NewDozerConverter 
  -    extends DozerConverter<String, Boolean> {
  -
  -  public NewDozerConverter() {
  -    super(String.class, Boolean.class);
  -  }
  -
  -  public Boolean convertTo(String source, Boolean destination) {
  -    if ("yes".equals(source)) {
  -      return Boolean.TRUE;
  -    } else if ("no".equals(source)) {
  -      return Boolean.FALSE;
  -    }
  -    throw new IllegalStateException("Unknown value!");
  -  }
  -
  -  public String convertFrom(Boolean source, String destination) {
  -    if (Boolean.TRUE.equals(source)) {
  -      return "yes";
  -    } else if (Boolean.FALSE.equals(source)) {
  -      return "no";
  -    }
  -    throw new IllegalStateException("Unknown value!");
  -  }
  -
  +import org.dozer.DozerConverter;
  +
  +public class NewDozerConverter extends DozerConverter<String, Boolean> {
  +
  +    public NewDozerConverter() {
  +        super(String.class, Boolean.class);
  +    }
  +
  +    @Override
  +    public Boolean convertTo(String source, Boolean destination) {
  +        if ("yes".equals(source)) {
  +            return Boolean.TRUE;
  +        } else if ("no".equals(source)) {
  +            return Boolean.FALSE;
  +        }
  +        throw new IllegalStateException("Unknown value!");
  +    }
  +
  +    @Override
  +    public String convertFrom(Boolean source, String destination) {
  +        if (Boolean.TRUE.equals(source)) {
  +            return "yes";
  +        } else if (Boolean.FALSE.equals(source)) {
  +            return "no";
  +        }
  +        throw new IllegalStateException("Unknown value!");
  +    }
   }
   ----
   
  
positive.code: 
  [source,java,prettyprint]
  ----
  public class MathOperationConverter 
      implements ConfigurableCustomConverter {
    
    public Object convert(Object destinationFieldValue, 
                          Object sourceFieldValue,
                          Class destinationClass, 
                          Class sourceClass, String param) {
      Integer source = (Integer) sourceFieldValue;
      Integer destination = (Integer) destinationFieldValue;
      if ("+".equals(param)) {
        return destination.intValue + source.intValue();
      }
      if ("-".equals(param)) {
        return destination.intValue - source.intValue();
      }
    }
    
  }
  ----
  
  
negative.code: 
  [source,java,prettyprint]
  ----
  import org.dozer.CustomConverter;
  import org.dozer.MappingException;
  
  public class TestCustomConverter implements CustomConverter {
  
      @Override
      public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass, Class<?> sourceClass) {
          if (sourceFieldValue == null) {
              return null;
          }
  
          CustomDoubleObject dest;
          if (source instanceof Double) {
              // check to see if the object already exists
              if (destination == null) {
                  dest = new CustomDoubleObject();
              } else {
                  dest = (CustomDoubleObject)destination;
              }
  
              dest.setTheDouble(((Double)source).doubleValue());
  
              return dest;
          } else if (source instanceof CustomDoubleObject) {
              double sourceObj = ((CustomDoubleObject)source).getTheDouble();
              return new Double(sourceObj);
          } else {
              throw new MappingException("Converter TestCustomConverter "
                                         + "used incorrectly. Arguments passed in were:"
                                         + destination
                                         + " and "
                                         + source);
          }
      }
  }
  ----
  
  CustomConverters can also be injected into the `Mapper` if you
  