2017-08-30 2 views
1

Ich versuche generate Typescript definitions from the LibreOffice IDL (über Doxygen-generierte XML).createInstance vs createInstanceWithArguments

Die XMultiServiceFactory interface verfügt über zwei Methoden zum Erstellen von Instanzen: createInstance und createInstanceWithArguments. Allerdings kann ich nicht finden, welche Arten von Argumenten und was sie sind, und sollte instanziiert werden mit createInstanceWithArguments; und welche Typen keine Argumente erfordern und mit createInstance instanziiert werden sollten.

Lage zu sein, Überlastungen auf den String-Parameter an die Methode übergeben zu definieren, basierend würde statische Typisierung ermöglichen auf diese Überlastungen basiert:

// automatically typed as com.sun.star.frame.Desktop 
let desktop = objServiceManager.createInstance('com.sun.star.frame.Desktop'); 

sonst wäre das Ergebnis explizit eingegeben werden:

let desktop = objServiceManager.createInstance('com.sun.star.frame.Desktop') 
    as com.sun.star.frame.Desktop; 

Wie kann ich aus der Dokumentation wissen, ob ein gegebener Typ Argumente benötigt oder nicht, und was diese Argumente sind?

(Libreoffice 5.3.5/Windows-10 64-bit)

(Ursprünglich bei ask.libreoffice geschrieben, ohne Antwort.)

Antwort

1

die Nach Service Manager dev guide:

Die Service-Definition sollte die Bedeutung jedes Elements beschreiben.

Ich nehme an, dass die IDL-Dateien sagen sollten, ob Argumente benötigt werden. Zum Beispiel gibt es in der Quellcodedatei /offapi/com/sun/star/configuration/ConfigurationProvider.idl eine detaillierte Beschreibung von Argumenten, und die Kommentare geben an, dass es auch möglich ist, eine Instanz ohne irgendwelche Argumente zu erstellen. (Der Code zeigt die Argumente jedoch nicht; er wird nur in Kommentaren erläutert).

Es sieht so aus, als seien alle relevanten Informationen aus dieser Datei in der Online-Dokumentation für ConfigurationProvider enthalten, so dass die IDL-Dateien nicht wirklich betrachtet werden müssen.

Vergleichen Sie das mit com.sun.star.frame.Desktop, die keine Argumente, wie im Beispiel unter https://wiki.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Using_the_Desktop gezeigt.

Verwandte Themen