blob: 28dc564f1341fcab710cea541ababdea1d8b1f9a [file] [log] [blame]
<!DOCTYPE html>
<html><head>
<title>Main Design Goals</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Main Design Goals</h2>
<p>
This API is version independent, scalable, durable, and reusable. And because
it is implemented using the OpenOffice.org component technology, it is
programming language independent as well.
</p>
<p>
It has to be seen more like an independent specification than being
dependent on a preexisting implementation. Therefore it is our to keep all
component APIs in this project and to keep all implementation code out of
this project.
</p>
<p>
Its version independence and durability results from the fact that we limit
changes to the API. You can add interfaces, services, and so on to the
OpenOffice.org API. However, other changes are rather limited:
</p>
<ul>
<li>Interfaces, structures, and exceptions are not allowed to change at all,
this breaks the existing code immediately.</li>
<li>Enums are not allowed to change, this breaks the existing Java code.</li>
<li>Services specifications can be changed restricted (optional extensions).</li>
<li>Constants can be add constants to constant groups, but changing
the value of a constant or remove a constant is not allowed, this would
break existing code as well.</li>
</ul>
<p>Its scalability and reuseability results from our design pattern, to
approach an orthogonal architecture rather than having specialized interfaces
for certain requirements. For example does each interfaces only cover exactly
one aspect of the behaviour of an object.
</p>
</body>
</html>