-\section{Architecture}
+\section{Architecture of \myprog{}}
\label{arch}
-\subsection{Libraries used}
-\subsection{Coarse structuring}
+\subsection{Libraries used in \myprog{}}
+\subsection{Coarse structuring of \myprog{}}
\label{coarse}
TODO: overall description, modularity, extendability, ex: easy to add new in-/output formats
TODO: mapping profiles (maybe better in next subsection)
TODO: Java, OPTIQUE
-\subsubsection{Package structuring}
+\subsubsection{Package structuring of \myprog{}}
The $45$ classes of \myprog{} were assigned to $11$ packages, each containing
classes responsible for the same area of operation or taking over similar roles.
Care was taken that package division happened senseful, producing meaningful packages
Since this doesn't have any functional implications \cite{java}, but is rather an
implementation detail, this is further explained in Section~\fullref{code_packages}.
-The packages are introduced and described in table \ref{arch_tbl_packages}.
-The lists of classes each package contains are given in table \ref{arch_tbl_classes}
-in the next Section~\fullref{fine}.
-For a detailed package description, refer to Appendix TODO.
+The packages are introduced and described in Table~\ref{arch_tbl_packages}.
+The lists of classes each package contains are given in Table~\ref{app_tbl_classes}
+in Appendix~\fullref{app_pkgs}.
\begin{table}[H]
\begin{tabular}{p{3cm}|p{13cm}} %\KOMAoption{fontsize}{\smallerfontsize{}}
%Package \code{helpers} depends on package \code{database}, which provides the \code{static}
%method \code{getSQLTypeName}.
-\subsection{Fine structuring}
+\subsection{Fine structuring of \myprog{}}
\label{fine}
+TODO: OBDA spec rep
+
While the packages in \myprog{} are introduced and described in Section~\fullref{coarse},
the classes that comprise them are addressed in this section.
-For a detailed class index, refer to Appendix TODO.
+For a list of classes contained in each package, refer to Appendix \ref{app_pkgs}.
+
TODO: total classes etc.
\subsubsection{Package contents}
\label{package_details}
-Table \ref{arch_tbl_classes} lists the classes each package contains.
+Table~\ref{app_tbl_classes} lists the classes each package contains.
The packages \code{cli}, \code{main}, \code{osl} and \code{settings} contain only
one class each, while the by far most extensive package is \code{database},
containing $15$ classes.
-\begin{table}[H]
- \begin{multicols}{2}\begin{itemize} %\KOMAoption{fontsize}{\smallerfontsize{}}
- \item \code{bootstrapping}
- \begin{itemize}
- \item \code{Bootstrapping}
- \item \code{DirectMappingURIBuilder}
- \item \code{URIBuilder}
- \end{itemize}
- \item \code{cli}
- \begin{itemize}
- \item \code{CLIDatabaseInteraction}
- \end{itemize}
- \item \code{database}
- \begin{itemize}
- \item \code{Column}
- \item \code{ColumnSet}
- \item \code{DatabaseException}
- \item \code{DBSchema}
- \item \code{ForeignKey}
- \item \code{Key}
- \item \code{PrimaryKey}
- \item \code{ReadableColumn}
- \item \code{ReadableColumnSet}
- \item \code{ReadableForeignKey}
- \item \code{ReadableKey}
- \item \code{ReadablePrimaryKey}
- \item \code{RetrieveDBSchema}
- \item \code{Table}
- \item \code{TableSchema}
- \end{itemize}
- \item \code{helpers}
- \begin{itemize}
- \item \code{Helpers}
- \item \code{MapValueIterable}
- \item \code{MapValueIterator}
- \item \code{ReadOnlyIterable}
- \item \code{ReadOnlyIterator}
- \item \code{SQLType}
- \item \code{UserAbortException}
- \end{itemize}
- \newpage
- \item \code{log}
- \begin{itemize}
- \item \code{ConsoleDiagnosticOutputHandler}
- \item \code{GlobalLogger}
- \end{itemize}
- \item \code{main}
- \begin{itemize}
- \item \code{Main}
- \end{itemize}
- \item \code{osl}
- \begin{itemize}
- \item \code{OSLSpecification}
- \end{itemize}
- \item \code{output}
- \begin{itemize}
- \item \code{ObjectSpecPrinter}
- \item \code{OSLSpecPrinter}
- \item \code{SpecPrinter}
- \end{itemize}
- \item \code{settings}
- \begin{itemize}
- \item \code{Job}
- \end{itemize}
- \item \code{specification}
- \begin{itemize}
- \item \code{AttributeMap}
- \item \code{EntityMap}
- \item \code{IdentifierMap}
- \item \code{InvalidSpecificationException}
- \item \code{OBDAMap}
- \item \code{OBDASpecification}
- \item \code{RelationMap}
- \item \code{SubtypeMap}
- \item \code{TranslationTable}
- \end{itemize}
- \item \code{test}
- \begin{itemize}
- \item \code{CreateTestDBSchema}
- \item \code{GetSomeDBSchema}
- \end{itemize}
- \end{itemize}\end{multicols} %\KOMAoption{fontsize}{\myfontsize{}}
- \caption{Class attachment to packages in \myprog{}}
- \label{arch_tbl_classes}
-\end{table}
-
\subsubsection{Class organization}
\label{hierarchies}
Organizing classes in a structured, obvious manner such that classes have well-defined