public void validate(Map<String, ValidationRule> refRules, Map<String, Atdl4jWidget<?>> targets) 
		throws ValidationException
	{

		// get the widget from context using field name
		Atdl4jWidget<?> target = targets.get( field );
		if ( target == null )
		{
			// -- Handle "FIX_fieldname" of "NX" --
			if ( ( field != null ) && 
				  ( field.startsWith( InputAndFilterData.FIX_DEFINED_FIELD_PREFIX ) )&&
				  ( operator == OperatorT.NX ) )
			{
				logger.debug( "Special handling to accept NOT EXISTS (\"NX\") check for FIX_DEFINED_FIELD_PREFIX field: " + field + " avoiding: \"No parameter defined for field\".");
				return;
			}

			String tempMsg = "No parameter defined for field \"" + field + "\" in this context (ValueOperatorValidationRule) field: " + field
					+ " operator: " + operator + " value: " + value + " parent: " + parent + " refRules: " + refRules;
			String tempMsg2 = tempMsg + " targets: " + targets;
			logger.debug( tempMsg2 );
			logger.trace( tempMsg2, new Exception( "Stack trace" ) );

			throw new ValidationException( null, tempMsg );
		}

		/**
		 * Object fieldValue = parent instanceof StateRuleT ?
		 * target.getControlValueAsComparable() :
		 * target.getParameterValueAsComparable(); // 2/1/2010 Scott Atwell
		 * (handle StateRule specifying "0" vs. displayed "0.00") Object v = value
		 * != null ? target.convertStringToComparable(value) : null;
		 * 
		 * AbstractAtdl4jWidget had (thus returning Parameter value even when we are
		 * comparing against Control's value for StateRuleT (divided it into two
		 * methods): public Comparable<?> convertStringToComparable(String string)
		 * throws JAXBException { if (parameterConverter != null) return
		 * parameterConverter.convertValueToComparable(string); else return
		 * controlConverter.convertValueToComparable(string); }
		 **/
		Object fieldValue;
		Object v;
		if ( parent instanceof StateRuleT ) // Uses Control "display" values
		{
			fieldValue = target.getControlValueAsComparable();
			v = target.convertStringToControlComparable( value );
		}
		else
		// StrategyEditT uses Parameter values
		{
			fieldValue = target.getParameterValueAsComparable();
			v = target.convertParameterStringToParameterComparable( value );
		}

		validateValues( target, fieldValue, operator, v );
	}