A Symbol is a name, usually in a specific Namespace.
A Symbol is stateless: Comon Lisp-style "value", "function" and
"property list" bindings are not part of the Symbol itself, but
looked up in the current Environment.
A Symbol
may be viewed as an EnvironmentKey
with a null
property component.
compareTo
public int compareTo(Object o)
equals
public final boolean equals(Object o)
Just tests for identity.
Otherwise hashTables that have Symbols as keys will break.
equals
public static boolean equals(Symbol sym1,
Symbol sym2)
getLocalName
public final String getLocalName()
Synonym for getName - the "print name" of the symbol without Namespace.
Useful when thinking of a Symbol as an XML QName.
getLocalPart
public final String getLocalPart()
getName
public final String getName()
getNamespace
public final Namespace getNamespace()
getNamespaceURI
public final String getNamespaceURI()
getPrefix
public final String getPrefix()
hasEmptyNamespace
public final boolean hasEmptyNamespace()
hashCode
public int hashCode()
make
public static Symbol make(Object namespace,
String name)
Find or create a symbol in a specificed namespace.
namespace
- can be an Namespace, or a namespace/environment name
(resolved using Namespace.getInstance), or null (in which case
an uninterned symbol is created).name
- The "local name" or "print name" of the desired symbol.
make
public static Symbol make(String uri,
String name,
String prefix)
Find or create a symbol in a specificed namespace.
uri
- a namespace uri.name
- The "local name" or "print name" of the desired symbol.prefix
- namespace prefix, or ""
makeUninterned
public static Symbol makeUninterned(String name)
makeWithUnknownNamespace
public static Symbol makeWithUnknownNamespace(String local,
String prefix)
Make a placeholder symbol with a known prefix and unknown namespace-uri.
This is convenient for processing definition commands like
"prefix:name=value"
- such as on the Kawa command-line -
where we don't yet know the namespace-uri. Code that later looks
for a value should look both under the true namespace-uri and
less LOG.JA * using this method (or
Namespace.makeUnknownNamespace(String)
).
parse
public static Symbol parse(String symbol)
Parse a String as a Symbol.
Recognizes:
readExternal
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
readResolve
public Object readResolve()
throws ObjectStreamException
setNamespace
public final void setNamespace(Namespace ns)
toString
public String toString()
writeExternal
public void writeExternal(ObjectOutput out)
throws IOException