Link sets

Link set class

Link sets are predefined business objects of the class IltLinkSet used to represent a collection of links between network resources, laid out in a specific order and with a specific distance.
Link sets let you group together links between two nodes, so that the graph layout cannot insert a link that is not in the link set between them or have them follow different paths. You can fix the order of the links in the set and specify the distance that separates two links.
linkset01.gif
Link sets
Note
Link sets can be nested. In other words, they can include other link sets, which in turn can group a set of links.
The IltLinkSet class does not declare any specific attribute.
You can retrieve the class IltLinkSet using its GetIlpClass method. You can handle its instances as simple IlpObject instances and set and get its attributes with the generic methods getAttributeValue and setAttributeValue.

Loading a link set defined in XML

This section shows how to load a link set from an XML file in a data source. For detailed information about data sources, see Data sources.
All you have to do is create a data source using the data source default implementation defined by IltDefaultDataSource and pass the XML file to the parse method of the data source, as shown below:
dataSource = new IltDefaultDataSource();
dataSource.parse("LinkSetXMLFile.xml");

How to define a link set in XML

The following is an example of a link set defined in XML format. For details about the XML elements used in this example, see Elements in an XML data fileĀ .
<addObject id="Link1">
  <class>ilog.tgo.model.IltLink</class>
  <link>   <from>Paris</from>   <to>Berlin</to>  </link>
  <attribute name="name">1</attribute>
  <attribute name="objectState" javaClass="ilog.tgo.model.IltSONETObjectState">
    <state>
      Active
    </state>
  </attribute>
</addObject>

<addObject id="Link2">
  <class>ilog.tgo.model.IltLink</class>
  <link>   <from>Paris</from>   <to>Berlin</to>  </link>
  <attribute name="name">2</attribute>
  <attribute name="objectState" javaClass="ilog.tgo.model.IltSONETObjectState">
    <state>
      Active
    </state>
  </attribute>
</addObject>

<addObject id="linkSet12">
  <class>ilog.tgo.model.IltLinkSet</class>
  <link>
    <from>Paris</from>
    <to>Berlin</to>
  </link>
  <children>
    <child>Link1</child>
    <child>Link2</child>
  </children>
</addObject>
The figure below shows the link set displayed in a network component:
LinkSet.gif
Link set displayed in a network component

Creating a link set with the API

This section shows how to create a link set through the API and how to add it to a data source.

How to create a link set with the API

IltNetworkElement paris = new IltNetworkElement("Paris",
         IltNetworkElement.Type.NE, null);
paris.setFunction(IltNetworkElement.Function.SwitchCrossConnect);
paris.setPosition(new IlpPoint(120, 350));

IltNetworkElement berlin = new IltNetworkElement("Berlin",
         IltNetworkElement.Type.NE, null);
berlin.setFunction(IltNetworkElement.Function.TransportCrossConnect);
berlin.setFamily(IltNetworkElement.Family.OC12);
berlin.setPosition(new IlpPoint(250, 350));

IltLink link1 = new IltLink(new IltSONETObjectState(IltSONET.State.Active),
         "1", null);
IltLink link2 = new IltLink(new IltSONETObjectState(IltSONET.State.Active),
         "2", null);
IltLinkSet linkSet = new IltLinkSet();
List objects = new ArrayList();
objects.add(paris);
objects.add(berlin);
objects.add(link1);
objects.add(link2);
objects.add(linkSet);
dataSource.setLink(link1.getIdentifier(), paris.getIdentifier(),
         berlin.getIdentifier());
dataSource.setLink(link2.getIdentifier(), paris.getIdentifier(),
         berlin.getIdentifier());
dataSource.setLink(linkSet.getIdentifier(), paris.getIdentifier(),
         berlin.getIdentifier());
dataSource.setParent(link1.getIdentifier(), linkSet.getIdentifier());
dataSource.setParent(link2.getIdentifier(), linkSet.getIdentifier());
dataSource.addObjects(objects);
The result looks like this:
LinkSet.gif
Link set displayed in a network component