class HierarchicalName {

	@Override
	public boolean equals(Object obj) {
		if (obj == null || !(obj instanceof HierarchicalName)) {
			return false;
		}
		
		HierarchicalName hn = (HierarchicalName) obj;
		return hn.m_is_absolute == m_is_absolute && hn.m_names.equals(m_names);
	}

	public  HierarchicalName(boolean absolute, List<String> names);
	public  HierarchicalName(boolean absolute, String... names);

}