public Problem validate(final Object instance,
				final IPAddress annotation, final Object target,
				final CharSequence address)
		{

			if (address == null || address.length() < 1)
			{
				if (annotation.required())
				{
					return new Problem(instance, annotation, target, address);
				}

				return null;
			}

			final String s = address.toString();

			final String[] octets = s.split("\\.");

			if (octets.length != 4)
			{
				return new Problem(instance, annotation, target, address);
			}

			for (final String o : octets)
			{
				if (!ValidationRoutines.isValidOctet(o))
				{
					return new Problem(instance, annotation, target, address);
				}
			}

			return null;
		}