1f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// ================================================================================================= 2f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// ADOBE SYSTEMS INCORPORATED 3f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// Copyright 2006 Adobe Systems Incorporated 4f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// All Rights Reserved 5f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// 6f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms 7f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// of the Adobe license agreement accompanying it. 8f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling// ================================================================================================= 9f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 10f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberlingpackage com.adobe.xmp.impl.xpath; 11f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 12f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 13f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling/** 14f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * A segment of a parsed <code>XMPPath</code>. 15f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * 16f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @since 23.06.2006 17f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 18f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberlingpublic class XMPPathSegment 19f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling{ 20f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** name of the path segment */ 21f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling private String name; 22f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** kind of the path segment */ 23f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling private int kind; 24f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** flag if segment is an alias */ 25f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling private boolean alias; 26f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** alias form if applicable */ 27f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling private int aliasForm; 28f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 29f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 30f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 31f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * Constructor with initial values. 32f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * 33f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param name the name of the segment 34f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 35f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public XMPPathSegment(String name) 36f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 37f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.name = name; 38f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 39f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 40f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 41f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 42f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * Constructor with initial values. 43f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * 44f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param name the name of the segment 45f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param kind the kind of the segment 46f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 47f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public XMPPathSegment(String name, int kind) 48f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 49f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.name = name; 50f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.kind = kind; 51f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 52f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 53f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 54f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 55f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @return Returns the kind. 56f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 57f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public int getKind() 58f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 59f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return kind; 60f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 61f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 62f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 63f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 64f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param kind The kind to set. 65f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 66f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public void setKind(int kind) 67f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 68f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.kind = kind; 69f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 70f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 71f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 72f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 73f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @return Returns the name. 74f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 75f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public String getName() 76f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 77f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return name; 78f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 79f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 80f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 81f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 82f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param name The name to set. 83f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 84f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public void setName(String name) 85f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 86f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.name = name; 87f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 88f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 89f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 90f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 91f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param alias the flag to set 92f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 93f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public void setAlias(boolean alias) 94f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 95f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.alias = alias; 96f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 97f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 98f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 99f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 100f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @return Returns the alias. 101f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 102f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public boolean isAlias() 103f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 104f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return alias; 105f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 106f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 107f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 108f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 109f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @return Returns the aliasForm if this segment has been created by an alias. 110f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 111f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public int getAliasForm() 112f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 113f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return aliasForm; 114f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 115f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 116f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 117f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 118f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @param aliasForm the aliasForm to set 119f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 120f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public void setAliasForm(int aliasForm) 121f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 122f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling this.aliasForm = aliasForm; 123f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 124f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 125f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 126f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling /** 127f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @see Object#toString() 128f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */ 129f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling public String toString() 130f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 131f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling switch (kind) 132f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling { 133f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.STRUCT_FIELD_STEP: 134f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.ARRAY_INDEX_STEP: 135f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.QUALIFIER_STEP: 136f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.ARRAY_LAST_STEP: 137f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return name; 138f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.QUAL_SELECTOR_STEP: 139f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling case XMPPath.FIELD_SELECTOR_STEP: 140f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return name; 141f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling 142f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling default: 143f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling // no defined step 144f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling return name; 145f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 146f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling } 147f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling} 148