package org.codehaus.plexus.component;
import org.codehaus.plexus.component.repository.ComponentDescriptor;
public class ComponentStackElement
{
private ComponentDescriptor<?> descriptor;
private String property;
public ComponentStackElement( ComponentDescriptor<?> descriptor )
{
this.descriptor = descriptor;
}
public ComponentStackElement( ComponentStackElement element )
{
descriptor = element.descriptor;
property = element.property;
}
public ComponentDescriptor<?> getDescriptor()
{
return descriptor;
}
public String getProperty()
{
return property;
}
public void setProperty( String property )
{
this.property = property;
}
public boolean equals( Object o )
{
if ( this == o )
{
return true;
}
if ( !( o instanceof ComponentStackElement ) )
{
return false;
}
ComponentStackElement that = (ComponentStackElement) o;
return descriptor.equals( that.descriptor ) &&
( property != null ? property.equals( that.property ) : that.property == null );
}
public int hashCode()
{
int result;
result = descriptor.hashCode();
result = 31 * result + ( property != null ? property.hashCode() : 0 );
return result;
}
public String toString()
{
return descriptor.getImplementationClass().getName() +
( property != null ? "." + property : "" ) +
( descriptor.getSource() != null ? "(" + descriptor.getSource() + ")" : "(Unknown Source)" );
}
}