package com.vladium.utils;
// ----------------------------------------------------------------------------
/**
* An {@link ILink} implementation for tree links created by array fields.
*
* @author (C) <a href="http://www.javaworld.com/columns/jw-qna-index.shtml">Vlad Roubtsov</a>, 2003
*/
final class ArrayIndexLink implements ILink
{
// public: ................................................................
// ILink:
public String name ()
{
final StringBuffer s = new StringBuffer ();
ILink l = this;
while (l instanceof ArrayIndexLink)
{
final ArrayIndexLink asl = (ArrayIndexLink) l;
s.insert (0, ']');
s.insert (0, asl.m_index);
s.insert (0, '[');
l = asl.m_container;
}
s.insert (0, l != null ? l.name () : ObjectProfiler.INPUT_OBJECT_NAME);
return s.toString ();
}
// protected: .............................................................
// package: ...............................................................
ArrayIndexLink (final ILink container, final int index)
{
m_container = container;
m_index = index;
}
// private: ...............................................................
private final ILink m_container;
private final int m_index;
} // end of class
// ----------------------------------------------------------------------------