Problem
Der Unterschied zwischen den Objekten LinkRef und Link soll anhand eines Beispiels verdeutlicht werden.
To show the difference between the LinkRef and Link Objects in DXL an example will be shown
Ansatz – Approach
LinkRef enthält weniger Informationen als Link, kann allerdings auch bei nicht geöffnetem Modul in einer Schleife durchlaufen werden. Es wird daher genutzt, um die Module zu öffnen um später mit dem Link-Objekt die vollständigen Informationen des Link-Objekts zu erhalten.
LinkRef contain less information than Link and can be iterated without opening the module. It is used often to open the modules and iterate them with the Link Objekt, which contains the full information
Lösung – Solution
Example: Layout-DXL which shows the In-Links
Beispiel für ein Layout DXL, was die In-Links ausgibt
// A Link can only be read when the source module is open
Link lnk;
// LinkRefs can be iterated on an object, although the
// object is closed
LinkRef lref;
string srcModuleName;
// Iterate the LinkRefs to open the modules – this
// should be done to get all Links back
for lref in obj<-"*" do
{
srcModuleName = fullName source (lref);
if (!open module srcModuleName)
{
read(srcModuleName, false);
}
}
// After the source Links have been opened, they can be
// iterated with a Link Object
for lnk in obj <- "*" do
{
Object src = source lnk;
display(identifier(src) "");
}
[/javascript]