blob: 88b42a1a79dcd8bab072e405b4f9249ec212bcc6 [file] [log] [blame]
// =================================================================================================
// ADOBE SYSTEMS INCORPORATED
// Copyright 2006 Adobe Systems Incorporated
// All Rights Reserved
//
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it.
// =================================================================================================
package com.adobe.xmp.impl.xpath;
/**
* A segment of a parsed <code>XMPPath</code>.
*
* @since 23.06.2006
*/
public class XMPPathSegment
{
/** name of the path segment */
private String name;
/** kind of the path segment */
private int kind;
/** flag if segment is an alias */
private boolean alias;
/** alias form if applicable */
private int aliasForm;
/**
* Constructor with initial values.
*
* @param name the name of the segment
*/
public XMPPathSegment(String name)
{
this.name = name;
}
/**
* Constructor with initial values.
*
* @param name the name of the segment
* @param kind the kind of the segment
*/
public XMPPathSegment(String name, int kind)
{
this.name = name;
this.kind = kind;
}
/**
* @return Returns the kind.
*/
public int getKind()
{
return kind;
}
/**
* @param kind The kind to set.
*/
public void setKind(int kind)
{
this.kind = kind;
}
/**
* @return Returns the name.
*/
public String getName()
{
return name;
}
/**
* @param name The name to set.
*/
public void setName(String name)
{
this.name = name;
}
/**
* @param alias the flag to set
*/
public void setAlias(boolean alias)
{
this.alias = alias;
}
/**
* @return Returns the alias.
*/
public boolean isAlias()
{
return alias;
}
/**
* @return Returns the aliasForm if this segment has been created by an alias.
*/
public int getAliasForm()
{
return aliasForm;
}
/**
* @param aliasForm the aliasForm to set
*/
public void setAliasForm(int aliasForm)
{
this.aliasForm = aliasForm;
}
/**
* @see Object#toString()
*/
public String toString()
{
switch (kind)
{
case XMPPath.STRUCT_FIELD_STEP:
case XMPPath.ARRAY_INDEX_STEP:
case XMPPath.QUALIFIER_STEP:
case XMPPath.ARRAY_LAST_STEP:
return name;
case XMPPath.QUAL_SELECTOR_STEP:
case XMPPath.FIELD_SELECTOR_STEP:
return name;
default:
// no defined step
return name;
}
}
}