package org.jvnet.jaxb2_commons.locator;
import java.text.MessageFormat;
/**
* Validation event locator.
*
* @author Aleksei Valikov
*/
public final class DefaultPropertyObjectLocator extends AbstractObjectLocator
implements PropertyObjectLocator {
/**
* Field name.
*/
protected final String propertyName;
/**
* Constructs a new validation event locator.
*
* @param parentLocator
* parent location (may be <code>null</code>).
* @param object
* object.
* @param propertyName
* field name.
*/
protected DefaultPropertyObjectLocator(final ObjectLocator parentLocator,
final String propertyName, final Object propertyValue) {
super(parentLocator, propertyValue);
this.propertyName = propertyName;
}
public String getPropertyName() {
return propertyName;
}
/**
* Returns parameters for message formatting.
*
* @return Message formatting parameters.
*/
public Object[] getMessageParameters() {
return new Object[] { getObject(), getPropertyName() };
}
@Override
protected String getDefaultMessage() {
return MessageFormat.format("Field: {1}\nField value: {0}.",
getMessageParameters());
}
@Override
protected String getStepAsString() {
return "." + getPropertyName();
}
}