public ValidationProblem<Object, Default, Object, CharSequence> validate(
                final Object instance, final Default annotation,
                final Object target, final CharSequence value)
        {
            if(value == null || value.length() < 1)
            {
                try
                {
                    if(target instanceof Method)
                    {
                        Method m = (Method) target;

                        String methodName = m.getName();

                        /*
                               * Check to see if the method is a getter. If it is, try
                               * to call a corresponding setter.
                               */
                        if(methodName.startsWith("get"))
                        {
                            StringBuilder temp = new StringBuilder(32);

                            temp.append("set");
                            temp.append(methodName.substring(3));

                            //TODO determine type rather than assuming string
                            Method setter = instance.getClass().getMethod(
                                    temp.toString(), new Class[]
                                    {String.class});

                            setter.invoke(instance, annotation.value());
                        }
                    }
                    /*
                          * If it is a field we can just set the value directly.
                          */
                    else if(target instanceof Field)
                    {
                        Field f = (Field) target;

                        f.set(instance, annotation.value());
                    }
                } catch (Exception e)
                {
                    throw new ValidationException(e);
                }
            }

            return null;
        }