%External.Interface is an abstract class that defines the user interface for
%SYSTEM external and language class interface elements.
This class is not to be used directly. Internal use only. For the public interface, refer to
%SYSTEM.external or one of the %SYSTEM language classes (java, dotnet, python).
Internal Note: The interface for GeneralImpl is the same as for LanguageImpl with one notable exception - all methods accept an
External Language Server name. Be sure to keep the API consistent between them.
Return a gateway connection to the specificed External Language Server.
abstract classmethod getProperty() as %ObjectHandle [ Language = objectscript ]
Return the value of a static property from the external class.
abstract classmethod invoke() as %RawString [ Language = objectscript ]
Invoke external code. If invoke() is called as an expression then return any value returned by the external code.
If no value is returned by the external code then a <COMMAND> exception is thrown. The externalClass is expected to be
passed as the name of the external code container. For Java this is the Java class name. For Python this can be the
name of a class or module. The externalMethod is the name of the external unit of code (function, method, etc.) to invoke in
the externalClass container. The return value is the value returned by the external code.
If the external method does not return a value then invoke() does not return a value.
abstract classmethod isServerRunning() as %Boolean [ Language = objectscript ]
Return true (ObjectScript(1)) if the External Language Server is running, false (ObjectScript(0)) otherwise.