if (obj == this)
return true;
if (!(obj instanceof QualifiedName))
return false;
// There may or may not be a qualifier.
QualifiedName qName = (QualifiedName) obj;
if (qualifier == null && qName.getQualifier() != null)
return false;
if (qualifier != null && !qualifier.equals(qName.getQualifier()))
return false;
return localName.equals(qName.getLocalName());
}