package de.tum.in.i22.uc.cm.datatypes.interfaces;
import de.tum.in.i22.uc.cm.pip.interfaces.EScopeType;
public interface IScope {
/**
* Two scopes are the same if they have the same type and the same list of attributes.
* the field _id is unique for each scope so it cannot match. _humanreadableName is
* also just for debugging purposes so it is not considered in the comparison.
*
* Note that o may contain additional attributes.
* The correct interpretation of this equality function is more that of a refinement relations.
*
* This also implies that it is not reflexive.
*
* a.equals(b) is not necessarily the same as b.equals(a)
*
* a.equals(b) is true if every attribute in a is also in b, i.e. if b refines a.
*
*
* @param o the scope to compare to
* @return true if they are the same. false otherwise.
*/
boolean equals(Object obj);
int hashCode();
String toString();
/**
* @return the _humanReadableName
*/
String getHumanReadableName();
/**
* @return the unique id
*/
String getId();
/**
* @return the scope type
*/
EScopeType getScopeType();
}