package org.jvnet.jaxb2_commons.locator; import java.text.MessageFormat; /** * Locator for the collection item. */ public final class DefaultItemObjectLocator extends AbstractObjectLocator implements ItemObjectLocator { /** * Item index. */ protected final int index; /** * Constructs a new item locator. * * @param parentLocator * parent locator. * @param itemIndex * item index. * @param itemValue * item value. */ protected DefaultItemObjectLocator(final ObjectLocator parentLocator, final int itemIndex, Object itemValue) { super(parentLocator, itemValue); this.index = itemIndex; } /** * Returns item index. * * @return Index of the item. */ public int getIndex() { return index; } public Object[] getMessageParameters() { return new Object[] { getObject(), Integer.valueOf(getIndex()) }; } @Override protected String getDefaultMessage() { return MessageFormat.format("Item index: {1}\nItem value: {0}.", getMessageParameters()); } @Override protected String getStepAsString() { return "[" + getIndex() + "]"; } }