/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: ValidationRuleSameAs.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.site;
import com.uwyn.rife.tools.BeanUtils;
import com.uwyn.rife.tools.exceptions.BeanUtilsException;
import static com.uwyn.rife.site.ValidityChecks.checkEqual;
public class ValidationRuleSameAs extends PropertyValidationRule
{
private String mReference = null;
public ValidationRuleSameAs(String propertyName, String reference)
{
super(propertyName);
mReference = reference;
}
public boolean validate()
{
Object value;
Object other;
try
{
value = BeanUtils.getPropertyValue(getBean(), getPropertyName());
other = BeanUtils.getPropertyValue(getBean(), mReference);
}
catch (BeanUtilsException e)
{
// an error occurred when obtaining the value of the property
// just consider it valid to skip over it
return true;
}
return checkEqual(value, other);
}
public ValidationError getError()
{
return new ValidationError.NOTSAMEAS(getPropertyName());
}
}