From 6cad35423fdd9e35f7407c6b2343c231f3455dd3 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Mon, 21 Jan 2019 14:00:33 +0100 Subject: [PATCH] Sorting error corrected --- Doc/Sd1/interfacesAbstractClasses.xml | 400 +++++++++++++------------- 1 file changed, 198 insertions(+), 202 deletions(-) diff --git a/Doc/Sd1/interfacesAbstractClasses.xml b/Doc/Sd1/interfacesAbstractClasses.xml index 18590d78e..16722629a 100644 --- a/Doc/Sd1/interfacesAbstractClasses.xml +++ b/Doc/Sd1/interfacesAbstractClasses.xml @@ -195,78 +195,77 @@ void close() <co linkends="sd1_interface_fig_AutoCloseablePromise-2.2" </tr> </informaltable> - <informaltable border="0" role="slideExclude"> - <tr> - <td valign="top"><calloutlist> - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-1.2-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-1.2"> - <para><xref linkend="glo_Java"/> standard package.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-2.2-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-2.2"> - <para>Method declaration without implementing body.</para> - </callout> - </calloutlist></td> - - <td valign="top"><calloutlist> - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-1-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-1"> - <para>Promise to implement the <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/AutoCloseable.html">AutoCloseable</classname> - interface. This boils down to implement <methodname>public void - close()</methodname> at <coref - linkend="sd1_interface_fig_AutoCloseablePromise-3-co"/>.</para> - - <para>Notice the <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Override.html">@Override</classname> - annotation resemblance to overriding base class methods in derived - classes.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-2-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-2"> - <para><code language="java">final</code> has been removed in - favour of setting <code language="java">out</code> to <code - language="java">null</code> at <coref - linkend="sd1_interface_fig_AutoCloseablePromise-5-co"/>.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-3-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-3"> - <para>Renaming former <methodname>closeFile()</methodname> method - to <methodname>close()</methodname> keeping the interface promise - made at <coref - linkend="sd1_interface_fig_AutoCloseablePromise-1-co"/>.</para> - - <para>Caution: No <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Override.html">@Override</classname> - here since close() is being implemented rather tan overriding a - base class method not existing anyway.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-4-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-4"> - <para>Closing the <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/io/PrintStream.html">PrintStream</classname> - thereby flushing buffered strings prior to releasing allocated - operating system resources.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseablePromise-5-co" - xml:id="sd1_interface_fig_AutoCloseablePromise-5"> - <para>Setting <code language="java">out</code> to <code - language="java">null</code> causes subsequent - <classname>Text2File</classname>.<methodname>println(...)</methodname> - calls throwing a <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/NullPointerException.html">NullPointerException</classname>. - Thus silent errors become observable errors.</para> - </callout> - </calloutlist></td> - </tr> - </informaltable> - </figure> - + <informaltable border="0" role="slideExclude"> + <tr> + <td valign="top"><calloutlist> + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-1.2-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-1.2"> + <para><xref linkend="glo_Java"/> standard package.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-2.2-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-2.2"> + <para>Method declaration without implementing body.</para> + </callout> + </calloutlist></td> + + <td valign="top"><calloutlist> + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-1-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-1"> + <para>Promise to implement the <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/AutoCloseable.html">AutoCloseable</classname> + interface. This boils down to implement <methodname>public void + close()</methodname> at <coref + linkend="sd1_interface_fig_AutoCloseablePromise-3-co"/>.</para> + + <para>Notice the <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Override.html">@Override</classname> + annotation resemblance to overriding base class methods in + derived classes.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-2-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-2"> + <para><code language="java">final</code> has been removed in + favour of setting <code language="java">out</code> to <code + language="java">null</code> at <coref + linkend="sd1_interface_fig_AutoCloseablePromise-5-co"/>.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-3-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-3"> + <para>Renaming former <methodname>closeFile()</methodname> + method to <methodname>close()</methodname> keeping the interface + promise made at <coref + linkend="sd1_interface_fig_AutoCloseablePromise-1-co"/>.</para> + + <para>Caution: No <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Override.html">@Override</classname> + here since close() is being implemented rather tan overriding a + base class method not existing anyway.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-4-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-4"> + <para>Closing the <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/io/PrintStream.html">PrintStream</classname> + thereby flushing buffered strings prior to releasing allocated + operating system resources.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseablePromise-5-co" + xml:id="sd1_interface_fig_AutoCloseablePromise-5"> + <para>Setting <code language="java">out</code> to <code + language="java">null</code> causes subsequent + <classname>Text2File</classname>.<methodname>println(...)</methodname> + calls throwing a <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/NullPointerException.html">NullPointerException</classname>. + Thus silent errors become observable errors.</para> + </callout> + </calloutlist></td> + </tr> + </informaltable> + </figure> <figure xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass"> <title><code language="java">abstract</code> class replacement</title> @@ -313,45 +312,45 @@ abstract void close();<co </tr> </informaltable> - <informaltable role="slideExclude" border="0"> - <tr> - <td valign="top"><calloutlist> - <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-1-co" - xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-1"> - <para><quote>Private</quote> project package.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-2-co" - xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-2"> - <para>Replacing <code language="java">interface</code> by <code - language="java">abstract</code> class.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-3-co" - xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-3"> - <para>abstract <methodname>close()</methodname> not providing an - implementing body.</para> - </callout> - </calloutlist></td> - - <td valign="top"><calloutlist> - <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-4-co" - xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-4"> - <para>Extending <code language="java">abstract</code> class - <classname>AutoCloseable</classname> replaces implementing the - <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/AutoCloseable.html">AutoCloseable</classname> - interface.</para> - </callout> - - <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-5-co" - xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-5"> - <para>Overriding (and in fact implementing) the abstract base - class <methodname>close()</methodname> method.</para> - </callout> - </calloutlist></td> - </tr> - </informaltable> + <informaltable border="0" role="slideExclude"> + <tr> + <td valign="top"><calloutlist> + <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-1-co" + xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-1"> + <para><quote>Private</quote> project package.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-2-co" + xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-2"> + <para>Replacing <code language="java">interface</code> by <code + language="java">abstract</code> class.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-3-co" + xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-3"> + <para>abstract <methodname>close()</methodname> not providing an + implementing body.</para> + </callout> + </calloutlist></td> + + <td valign="top"><calloutlist> + <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-4-co" + xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-4"> + <para>Extending <code language="java">abstract</code> class + <classname>AutoCloseable</classname> replaces implementing the + <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/AutoCloseable.html">AutoCloseable</classname> + interface.</para> + </callout> + + <callout arearefs="sd1_interface_fig_AutoCloseableAsAbstractClass-5-co" + xml:id="sd1_interface_fig_AutoCloseableAsAbstractClass-5"> + <para>Overriding (and in fact implementing) the abstract base + class <methodname>close()</methodname> method.</para> + </callout> + </calloutlist></td> + </tr> + </informaltable> </figure> <figure xml:id="sd1_interface_fig_whyInterfacesVsAbstractClasses"> @@ -505,23 +504,23 @@ public interface MyFlushable extends MyAutoCloseable { } }</programlisting> - <calloutlist role="slideExclude"> - <callout arearefs="sd1_callout_StringComparable-1-co" - xml:id="sd1_callout_StringComparable-1"> - <para>Type parameter <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> - to interface <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Comparable.html">Comparable</classname>.</para> - </callout> - - <callout arearefs="sd1_callout_StringComparable-2-co" - xml:id="sd1_callout_StringComparable-2"> - <para>Matching type <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> - to type parameter in <coref - linkend="sd1_callout_StringComparable-1-co"/>.</para> - </callout> - </calloutlist> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_callout_StringComparable-1-co" + xml:id="sd1_callout_StringComparable-1"> + <para>Type parameter <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> + to interface <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/Comparable.html">Comparable</classname>.</para> + </callout> + + <callout arearefs="sd1_callout_StringComparable-2-co" + xml:id="sd1_callout_StringComparable-2"> + <para>Matching type <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> + to type parameter in <coref + linkend="sd1_callout_StringComparable-1-co"/>.</para> + </callout> + </calloutlist> </figure> <figure xml:id="sd1_fig_StringCompareExamples"> @@ -550,25 +549,25 @@ System.out.println("Hannah".compareTo("Hannah")); <co </tr> </informaltable> - <calloutlist role="slideExclude"> - <callout arearefs="sd1_callout_stringCompareExamples-1-co" - xml:id="sd1_callout_stringCompareExamples-1"> - <para><code language="java">"Eve"</code> is lexicographically smaller - than <code language="java">"Paul"</code>.</para> - </callout> - - <callout arearefs="sd1_callout_stringCompareExamples-2-co" - xml:id="sd1_callout_stringCompareExamples-2"> - <para><code language="java">"Victor"</code> is lexicographically - greater than <code language="java">"Andrew"</code>.</para> - </callout> - - <callout arearefs="sd1_callout_stringCompareExamples-3-co" - xml:id="sd1_callout_stringCompareExamples-3"> - <para><code language="java">"Hannah"</code> is (lexicographically) - equal to <code language="java">"Hannah"</code>.</para> - </callout> - </calloutlist> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_callout_stringCompareExamples-1-co" + xml:id="sd1_callout_stringCompareExamples-1"> + <para><code language="java">"Eve"</code> is lexicographically + smaller than <code language="java">"Paul"</code>.</para> + </callout> + + <callout arearefs="sd1_callout_stringCompareExamples-2-co" + xml:id="sd1_callout_stringCompareExamples-2"> + <para><code language="java">"Victor"</code> is lexicographically + greater than <code language="java">"Andrew"</code>.</para> + </callout> + + <callout arearefs="sd1_callout_stringCompareExamples-3-co" + xml:id="sd1_callout_stringCompareExamples-3"> + <para><code language="java">"Hannah"</code> is (lexicographically) + equal to <code language="java">"Hannah"</code>.</para> + </callout> + </calloutlist> </figure> <figure xml:id="sd1_fig_StringSortAscDesc"> @@ -634,9 +633,7 @@ for (final String n: names) { <co linkends="sd1_callout_StringSortAscending-3" System.out.println(n); }</programlisting></td> - <td valign="top"><screen>Eve -Bernie -Aaron + <td valign="top"><screen>Aaron Bernie Eve Laura @@ -645,29 +642,29 @@ Tim</screen></td> </tr> </informaltable> - <calloutlist role="slideExclude"> - <callout arearefs="sd1_callout_StringSortAscending-1-co" - xml:id="sd1_callout_StringSortAscending-1"> - <para>An array of names in random lexicographical order.</para> - </callout> - - <callout arearefs="sd1_callout_StringSortAscending-2-co" - xml:id="sd1_callout_StringSortAscending-2"> - <para><methodname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Arrays.html#sort(java.lang.Object%5B%5D)">Arrays.sort</methodname>(Object[] - a) will rearrange the array of names alphabetically in ascending order - as being defined by <methodname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#compareTo(java.lang.String)">String.compareTo</methodname>(String - anotherString), see left part of <xref - linkend="sd1_fig_StringSortAscDesc"/>.</para> - </callout> - - <callout arearefs="sd1_callout_StringSortAscending-3-co" - xml:id="sd1_callout_StringSortAscending-3"> - <para>The sorted array's content is being written to standard - output.</para> - </callout> - </calloutlist> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_callout_StringSortAscending-1-co" + xml:id="sd1_callout_StringSortAscending-1"> + <para>An array of names in random lexicographical order.</para> + </callout> + + <callout arearefs="sd1_callout_StringSortAscending-2-co" + xml:id="sd1_callout_StringSortAscending-2"> + <para><methodname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Arrays.html#sort(java.lang.Object%5B%5D)">Arrays.sort</methodname>(Object[] + a) will rearrange the array of names alphabetically in ascending + order as being defined by <methodname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html#compareTo(java.lang.String)">String.compareTo</methodname>(String + anotherString), see left part of <xref + linkend="sd1_fig_StringSortAscDesc"/>.</para> + </callout> + + <callout arearefs="sd1_callout_StringSortAscending-3-co" + xml:id="sd1_callout_StringSortAscending-3"> + <para>The sorted array's content is being written to standard + output.</para> + </callout> + </calloutlist> </figure> <qandaset defaultlabel="qanda" xml:id="sd1QandaArraysSortUnderstand"> @@ -981,24 +978,23 @@ System.out.println(new SortCaseInsensitive(). <co </tr> </informaltable> - <calloutlist role="slideExclude"> - <callout arearefs="sd1_callout_StringComparatorDemo-1-co" - xml:id="sd1_callout_StringComparatorDemo-1"> - <para>Standard <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> - comparison.</para> - </callout> - - <callout arearefs="sd1_callout_StringComparatorDemo-2-co" - xml:id="sd1_callout_StringComparatorDemo-2"> - <para>Custom <classname - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html">Comparator</classname> - evaluating <code language="java">"hello".compareTo(<emphasis - role="red">"uk"</emphasis>)</code> behind the scenes.</para> - </callout> - </calloutlist> - - </figure> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_callout_StringComparatorDemo-1-co" + xml:id="sd1_callout_StringComparatorDemo-1"> + <para>Standard <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/lang/String.html">String</classname> + comparison.</para> + </callout> + + <callout arearefs="sd1_callout_StringComparatorDemo-2-co" + xml:id="sd1_callout_StringComparatorDemo-2"> + <para>Custom <classname + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html">Comparator</classname> + evaluating <code language="java">"hello".compareTo(<emphasis + role="red">"uk"</emphasis>)</code> behind the scenes.</para> + </callout> + </calloutlist> + </figure> <figure xml:id="sd1_fig_StringSortIgnoreCase"> <title><classname @@ -1064,23 +1060,23 @@ ATM</screen></td> </tr> </informaltable> - <calloutlist role="slideExclude"> - <callout arearefs="sd1_callout_StringSortIgnoreCaseLambda-1-co" - xml:id="sd1_callout_StringSortIgnoreCaseLambda-1"> - <para>This lambda expression is equivalent to the following custom - comparator:</para> + <calloutlist role="slideExclude"> + <callout arearefs="sd1_callout_StringSortIgnoreCaseLambda-1-co" + xml:id="sd1_callout_StringSortIgnoreCaseLambda-1"> + <para>This lambda expression is equivalent to the following custom + comparator:</para> - <programlisting language="none">public class SortDescending implements <link - xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html">Comparator</link><String> { + <programlisting language="none">public class SortDescending implements <link + xlink:href="https://docs.oracle.com/javase/10/docs/api/java/util/Comparator.html">Comparator</link><String> { @Override public int compare(final String <emphasis role="red">a</emphasis>, final String <emphasis - role="red">b</emphasis>) { + role="red">b</emphasis>) { return <emphasis role="red">b.compareTo(a)</emphasis>; // Equivalent to <coref - linkend="sd1_callout_StringSortIgnoreCaseLambda-1-co"/> + linkend="sd1_callout_StringSortIgnoreCaseLambda-1-co"/> } }</programlisting> - </callout> - </calloutlist> + </callout> + </calloutlist> </figure> <qandaset defaultlabel="qanda" xml:id="sd1QandaArraysFlexibleSorting"> -- GitLab