core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchyImpl.java
public void setHierarchy(String roleHierarchyStringRepresentation) {
		this.roleHierarchyStringRepresentation = roleHierarchyStringRepresentation;

		logger.debug("setHierarchy() - The following role hierarchy was set: "
				+ roleHierarchyStringRepresentation);

		buildRolesReachableInOneStepMap();
		buildRolesReachableInOneOrMoreStepsMap();
	}
public void setHierarchy(String roleHierarchyStringRepresentation) {
		this.roleHierarchyStringRepresentation = roleHierarchyStringRepresentation;

		logger.debug("setHierarchy() - The following role hierarchy was set: "
				+ roleHierarchyStringRepresentation);

		buildRolesReachableInOneStepMap();
		buildRolesReachableInOneOrMoreStepsMap();
	}
Set the role hierarchy and pre-calculate for every role the set of all reachable
roles, i.e. all roles lower in the hierarchy of every given role. Pre-calculation
is done for performance reasons (reachable roles can then be calculated in O(1)
time). During pre-calculation, cycles in role hierarchy are detected and will cause
a <tt>CycleInRoleHierarchyException</tt> to be thrown.

@param roleHierarchyStringRepresentation - String definition of the role hierarchy.