Incluindo e Removendo Restrições para HL

É possível incluir restrições no Layout Hierárquico alocando um novo objeto de restrição e chamando este método na instância ibm_ilog.graphlayout.hierarchical.HierarchicalLayout:
layout.addConstraint(constraint);
É possível incluir quantas restrições você desejar. The constraints are respected during the subsequent layout calls until you remove them. Para remover a restrição mais recente, chame:
layout.removeMostRecentConstraint();
Para remover uma restrição específica, chame:
layout.removeConstraint(constraint);
Para remover todas as restrições existentes, chame:
layout.removeAllConstraints();
É possível recuperar as restrições que foram incluídas em um Layout Hierárquico com o método:
var constraints = layout.getConstraints();
while(constraints.hasNext()){
	var constraint = constraints.next();
	// ...
}

Grupos de Nós

Algumas restrições afetam nós únicos. Outras restrições afetam grupos de nós. A classe ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup é uma maneira conveniente de especificar um grupo de nós. É possível criar um grupo de nós da seguinte maneira:
group = new ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup();
while (...) { 
	group.add(node);
}
Um grupo de nós possui uma funcionalidade semelhante a um vetor. É possível solicitar o tamanho e os elementos do grupo, remover elementos do grupo ou verificar se um nó já pertence ao grupo. Também é possível converter um vetor de nós em um grupo:
group.add(node)
Inclui um nó no grupo.
group.remove(node)
Remove um nó do grupo.
group.contains(node)
Verifica se um nó está no grupo.
group.size()
Retorna o número de nós no grupo.
group.elements()
Retorna os nós do grupo como um cursor simples (IIterator).
group = new ibm_ilog.graphlayout.hierarchical.HierarchicalNodeGroup(array)
Creates a group that contains the nodes stored in the input array.