EGL beinhaltet vier Java™-Klassen, die Sie zum Erstellen eines Protokolls von Abschnitten verwenden können, auf die von einem Programm verwiesen wird.
Verwenden Sie die Klasse 'PartInfoFactory' zum Generieren von Statistikdaten zu Abschnittsverweisen innerhalb der Eclipse-IDE; verwenden Sie die Klasse 'GenerationServer' zusammen mit der Klasse EGLSDK, um ein Protokoll außerhalb der integrierten Entwicklungsumgebung (IDE) zu generieren.
com.ibm.etools.egl.ui.parts.PartInfoFactory
Zur Klasse 'PartInfoFactory' gehören folgende Methoden:
public static IPartInfo[] getReferencePartList(IFile eglFile)
throws Exception
public static IPartInfo[] getReferencePartList(IFile eglFile,
boolean removeUnusedMembers)
throws Exception
public static IPartInfo[] getReferenceElementsList(IFile eglFile)
throws Exception
public static IPartInfo[] getReferenceElementsList(IFile eglFile,
boolean removeUnusedMembers)
throws Exception
IPartInfo[] parts = PartInfoFactory.getReferencePartList(genPart);
com.ibm.etools.egl.GenerationServer
Zur Klasse 'GenerationServer' gehören folgende Methoden:
public static void addListener(IGenerationListener listener)
public static void removeListener(IGenerationListener listener)
public static void enableGeneration (boolean flag)
'enableGeneration' ermöglicht das Festlegen eines booleschen Flags mit 'true' (wahr) oder 'false' (falsch), um anzugeben, ob die Generierung des Abschnitts erfolgen soll. Der Standardwert ist 'true'. Wenn Sie vor dem Aufrufen von EGLSDK den Wert auf 'false' setzen, können Sie eine Liste der zu einer EGL-Quelle gehörigen Abschnitte analysieren und erstellen, ohne dass nachfolgend eine Generierung erfolgt.
public static IPartInfo[] getAllUniqueReferencedParts(
IPartInfo[] parts)
public static IElementInfo[] getAllUniqueReferecedElements(
IElementInfo[] elements)
GenerationServer.addListener(listener);
com.ibm.etools.egl.util.EGLSDK eglsdk = new com.ibm.etools.egl.util.EGLSDK();
GenerationServer.removeListener(listener);
Zur Schnittstelle 'IGenerationListener' gehören folgende Methoden:
Zur Schnittstelle 'IPartInfo' gehören folgende Methoden:
In der Regel werden ein neues 'Set'- und ein 'ArrayList'-Element abgerufen und anschließend freigegeben, die die Logik umgeben, damit alle Abschnitte in der Aktion verarbeitet werden. Beispiel:
public void run(IAction action) {
resources = new HashSet();
partList = new ArrayList();
Iterator selectionIterator = this.selection.iterator();
while (selectionIterator.hasNext()) {
Object object = selectionIterator.next();
if ((object instanceof IEGLFile)) {
IEGLFile iEglFile = (IEGLFile) object;
try {
IFile eglFile = ResourcesPlugin.getWorkspace().getRoot().getFile(iEglFile.getUnderlyingResource().getFullPath());
IPartInfo[] associatedParts = PartInfoFactory.getReferencePartList(eglFile);
generateEglSourceFile(associatedParts, eglFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
resources = null;
partList = null;
}
private static void generateEsf(IPartInfo[] associatedParts, IFile eglFile) {
....
associatedParts = GenerationServer.getAllUniqueReferecedParts(associatedParts);
try {
BufferedWriter out = new BufferedWriter(new FileWriter(outFile, false));
for (int i = 0; i < associatedParts.length; i++) {
out.write(associatedParts[i].getSource(resources, partList));
out.write("\n");
}
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}