if (obj == this)
return true;
if (obj == null || obj instanceof ContextInfo == false)
return false;
ContextInfo other = (ContextInfo) obj;
if (getPath().equals(other.getPath()) == false)
return false;
List<String> thisMetaDataPath = getMetaDataPath();
List<String> otherMetaDataPath = other.getMetaDataPath();
if (thisMetaDataPath.equals(otherMetaDataPath) == false)
return false;
List<ClassPathEntry> thisClassPath = getClassPath();
List<ClassPathEntry> otherClassPath = other.getClassPath();
if (thisClassPath == null)
return otherClassPath == null;
return thisClassPath.equals(otherClassPath);
}