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;
11f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
12f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling/**
13f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling * @since   09.11.2006
14f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling */
15f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberlingpublic class QName
16f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling{
17f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/** XML namespace prefix */
18f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	private String prefix;
19f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/** XML localname */
20f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	private String localName;
21f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
22f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
23f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/**
24f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * Splits a qname into prefix and localname.
25f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @param qname a QName
26f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 */
27f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	public QName(String qname)
28f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	{
29f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		int colon = qname.indexOf(':');
30f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
31f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		if (colon >= 0)
32f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		{
33f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling			prefix = qname.substring(0, colon);
34f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling			localName = qname.substring(colon + 1);
35f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		}
36f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		else
37f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		{
38f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling			prefix = "";
39f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling			localName = qname;
40f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		}
41f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	}
42f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
43f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
44f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/** Constructor that initializes the fields
45f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @param prefix the prefix
46f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @param localName the name
47f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 */
48f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	public QName(String prefix, String localName)
49f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	{
50f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		this.prefix = prefix;
51f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		this.localName = localName;
52f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	}
53f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
54f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
55f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/**
56f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @return Returns whether the QName has a prefix.
57f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 */
58f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	public boolean hasPrefix()
59f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	{
60f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		return prefix != null  &&  prefix.length() > 0;
61f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	}
62f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
63f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
64f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/**
65f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @return the localName
66f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 */
67f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	public String getLocalName()
68f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	{
69f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		return localName;
70f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	}
71f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
72f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling
73f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	/**
74f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 * @return the prefix
75f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	 */
76f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	public String getPrefix()
77f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	{
78f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling		return prefix;
79f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling	}
80f12f744843a67c910ec325fc6dfa73988f67b97cSascha Haeberling}