<html>
<head>

<title>API FAQ</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>

<body>

<h2>FAQ on OpenOffice.org API</h2>


<ul>
<li><a HREF="#languages">From which languages can I use the OpenOffice.org -API?</a>
<li><a HREF="#corba-idl">What is the difference between UNO IDL and CORBA?</a>
<li><a HREF="#api-spec-size">What's the "size" of the API specification?</a>
<li><a HREF="#documentation">How is the documentation of the API done?</a>
<li><a HREF="#api-impl-size">What is the "size" of the API implementation?</a>
<li><a HREF="#java-examples">Do you have any documentation or examples for Java programmers?</a>
<li><a HREF="#not-implemented">Why are there some interfaces in the OpenOffice.org -API which are not implemented in any OpenOffice.org component?</a>
<li><a HREF="#use-interfaces">How can I find out, if I actually can use a certain interface of the OpenOffice.org -API?</a>
<li><a HREF="#compound-docs">Are there interfaces to build compound documents like Microsoft's OLE?</a>
<li><a HREF="#conflict-solving">How is conflict resolved on design issues?</a>
<li><a HREF="#my-role">What is your role, Michael Hönnig?</a>
</ul>

<p><a NAME="languages"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>From which languages can I use the OpenOffice.org -API?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

OpenOffice.org implements the API with UNO (Universal Network Objects). Currently there are language bindings for Java and C++. You can implement your own language binding, and in fact we are actively looking for a volunteer to create a C language binding.

<p>Additionally UNO allows control from scripting languages and scripting environments (for example debuggers). Currently StarBASIC (VBA syntax compatible) can call on the API and there is a prototype written for Python integration.
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="corba-idl"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>What is the difference between UNO IDL and CORBA IDL?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

UNO IDL is based on CORBA IDL, but additionally it supports

<ul>
<img src="/branding/images/small_blue_bullet.gif">&nbsp;&nbsp;inheritance for exceptions and structures,<br><br>
<img src="/branding/images/small_blue_bullet.gif">&nbsp;&nbsp;assigned values for enums,<br><br>
<img src="/branding/images/small_blue_bullet.gif">&nbsp;&nbsp;a new stereotype "service"<br>(combines interfaces and properties).
</ul><br>

And currently it does not support:

<ul>
<img src="/branding/images/small_blue_bullet.gif">&nbsp;&nbsp;arrays as defined types<br><br>
<img src="/branding/images/small_blue_bullet.gif">&nbsp;&nbsp;unions
</ul>

</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="api-spec-size"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>What is the "size" of the API specification?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

The API consists of about 2000 files, each specifying one type. A type in this respect can be a service, an interface, a struct, an exception, a constant group, or an enum. These files total in about 6 MB of data.
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="documentation"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>How is the documentation of the API done?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

A reference like documentation consists within the IDL files. The syntax of the documentation is based on JavaDoc with a few extensions to mark identifiers. We are currently developing a new generator for this syntax which will generate HTML documents directly from the IDLs.

<p> Our <a href="DevelopersGuide/DevelopersGuide.html">Developers Guide</a> describes the concepts of all components within OpenOffice.org which have
  an API. It is the best resource to start learning about the API.

<p> Additionally we have a <a href="basic/man/tutorial/tutorial.pdf">tutorial</a> for StarBASIC programmers.  It explains the basic concepts, shows some UML diagrams of the component structure and has plenty of documented examples of the API usage. 
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="api-impl-size"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>What is the "size" of the API implementation?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td>
<td>

It's hard to impossible to find out. Currently the API implementation is just
  a wrapper to a core API for the most parts. Only newer components directly
  implement the API. Thus, there is really not much point in finding out how
  much code implements the API - and it even makes less sense in the future.
  Depending on the perspective, we probably can say: The whole OpenOffice.org
  is an implementation of the API, especially because more and more features
  are using the API of other components for integration.
</td>
</tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">

<p><a NAME="java-examples"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>Do you have any documentation or examples for Java programmers?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

In the <a HREF="http://udk.OpenOffice.org">UDK project</a> you can find 
documentation on the language binding for Java. There are some Java examples
in the <a HREF="http://soldc.sun.com/staroffice">StarOffice SDK</a> which 
might be helpful for you. <p></p>
</td></tr></table>

<p><a NAME="not-implemented"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>Why are there some  interfaces in the OpenOffice.org -API which are not implemented in any OpenOffice.org component?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

The OpenOffice.org -API is actually more like a specification than an API of a preexisting implementation. Thus there are at several reasons why there are interfaces without any implementation:<p></p>

<ol>
<ol>
<li>it could be an optional interface within all services where it is used, but no current implementation actually implements it,
<li>it could be an interface to make a concept orthogonal, but the dimension it addresses is not needed right now.
<li>it could be part of a recent design which is not implemented yet,
<li> its absence in any implementation could simply be a bug.
</ol>
</ol>
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="use-interfaces"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>How can I find out if I can use a certain interface of the OpenOffice.org -API?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

Check for a service which exports this interface, then check for a component which promises to supports this service. Keep optional interfaces in mind (mentioned in the export documentation of the service). If the component you're using still does not implement the interface, it's a bug. In the latter case, please report the bug to the owner of the component. If it's a specification bug, they will forward it to the owner of the specification.
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="compound-docs"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>Are there interfaces to build compound documents like Microsoft's OLE?</b></font>

<br>
<br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td><td>

Within StarOffice API there are no interfaces right now for building compound documents. Our idea is to use the Bonobo model for this purpose.
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


<p><a NAME="conflict-solving"></a><img SRC="/branding/images/q.gif"> <font COLOR="#003399"><b>How is conflict resolved  on design issues?</b></font>

<br><br><table CELLPADDING=0 CELLSPACING=0 BORDER=0><tr><td VALIGN=TOP><img SRC="/branding/images/arrow.gif"></td>
<td>

To begin with, the API is positioned as being a specification which keeps a focus
  on an orthogonal structure and reusability. On the other hand we tried to be
  as similar to Java as possible. Usability from both sides, the implementation
  and the use itself, is another important point. And here often we have to make
  compromises - sometimes even because there is a preexisting implementation.

  <p>If there are conflicts, we try to find consensus. Just listen to all arguments, give time to find new ones, before hastily make decisions. Try to find a solution everybody is comfortable with.
</td></tr></table>

<p><img SRC="/branding/images/dotted_line.gif"><img SRC="/branding/images/dotted_line.gif">


</body>
</html>

