\pp@pagectr{footnote}{12}{22}{10}
\pp@pagectr{footnote}{13}{22}{10}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.2}Shortcomings}{10}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{Absence of Generics in Eclipse Source Code}{10}}
+\@writefile{tdo}{\defcounter {refsection}{0}\relax }\@writefile{tdo}{\contentsline {todo}{\dots }{11}}
+\pgfsyspdfmark {pgfid36}{7292190}{45680457}
+\pgfsyspdfmark {pgfid39}{33785118}{45675615}
+\pgfsyspdfmark {pgfid40}{37143838}{45428038}
\citation{dp}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Composite Refactorings in Eclipse}{11}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Composite Refactorings in Eclipse}{13}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.1}A Simple Ad Hoc Model}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.2}The Extract and Move Method Refactoring}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}The ExtractAndMoveMethodChanger Class}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}The ExtractAndMoveMethodPrefixesExtractor Class}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}The Prefix Class}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}The PrefixSet Class}{11}}
-\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Hacking the Refactoring Undo History}{11}}
-\@writefile{tdo}{\defcounter {refsection}{0}\relax }\@writefile{tdo}{\contentsline {todo}{Where to put this section?}{11}}
-\pgfsyspdfmark {pgfid36}{6178078}{9581956}
-\pgfsyspdfmark {pgfid39}{33785118}{9577114}
-\pgfsyspdfmark {pgfid40}{37143838}{9329537}
-\pp@pagectr{footnote}{14}{23}{11}
-\pp@pagectr{footnote}{15}{24}{12}
-\pp@pagectr{footnote}{16}{24}{12}
-\pp@pagectr{footnote}{17}{24}{12}
-\pp@pagectr{footnote}{18}{24}{12}
-\pp@pagectr{footnote}{19}{24}{12}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.1}A Simple Ad Hoc Model}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.2}The Extract and Move Method Refactoring}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}The ExtractAndMoveMethodChanger Class}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}The ExtractAndMoveMethodPrefixesExtractor Class}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}The Prefix Class}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}The PrefixSet Class}{13}}
+\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}Hacking the Refactoring Undo History}{13}}
+\@writefile{tdo}{\defcounter {refsection}{0}\relax }\@writefile{tdo}{\contentsline {todo}{Where to put this section?}{13}}
+\pgfsyspdfmark {pgfid41}{6178078}{9581956}
+\pgfsyspdfmark {pgfid44}{33785118}{9577114}
+\pgfsyspdfmark {pgfid45}{37143838}{9329537}
+\pp@pagectr{footnote}{14}{25}{13}
+\pp@pagectr{footnote}{15}{26}{14}
+\pp@pagectr{footnote}{16}{26}{14}
+\pp@pagectr{footnote}{17}{26}{14}
+\pp@pagectr{footnote}{18}{26}{14}
+\pp@pagectr{footnote}{19}{26}{14}
history.
\section{Shortcomings}
+This section is introduced naturally with a conclusion: The JDT refactoring
+implementation does not facilitate composition of refactorings. This section
+will try to explain why, and also identify other shortcomings of both the
+usability and the readability of the JDT refactoring source code.
+
+I will begin at the end and work my way toward the composition part of this
+section.
+
+\subsubsection{Absence of Generics in Eclipse Source Code}
+This section is not only concerning the JDT refactoring API, but also large
+quantities of the Eclipse source code. The code shows a striking absence of the
+Java language feature of generics. It is hard to read a class' interface when
+methods return objects of types such as \type{List} or \type{Map}. This
+sometimes results in having to read a lot of source code to understand what is
+going on, instead of relying on the available interfaces. In addition, it makes
+the use of typecasting more of a rule than an exception.
+
+\todo{\ldots}
+
\chapter{Composite Refactorings in Eclipse}
\defcounter {refsection}{0}\relax
\contentsline {section}{\numberline {2.2}Shortcomings}{10}
\defcounter {refsection}{0}\relax
-\contentsline {chapter}{\numberline {3}Composite Refactorings in Eclipse}{11}
+\contentsline {subsubsection}{Absence of Generics in Eclipse Source Code}{10}
\defcounter {refsection}{0}\relax
-\contentsline {section}{\numberline {3.1}A Simple Ad Hoc Model}{11}
+\contentsline {chapter}{\numberline {3}Composite Refactorings in Eclipse}{13}
\defcounter {refsection}{0}\relax
-\contentsline {section}{\numberline {3.2}The Extract and Move Method Refactoring}{11}
+\contentsline {section}{\numberline {3.1}A Simple Ad Hoc Model}{13}
\defcounter {refsection}{0}\relax
-\contentsline {subsection}{\numberline {3.2.1}The ExtractAndMoveMethodChanger Class}{11}
+\contentsline {section}{\numberline {3.2}The Extract and Move Method Refactoring}{13}
\defcounter {refsection}{0}\relax
-\contentsline {subsection}{\numberline {3.2.2}The ExtractAndMoveMethodPrefixesExtractor Class}{11}
+\contentsline {subsection}{\numberline {3.2.1}The ExtractAndMoveMethodChanger Class}{13}
\defcounter {refsection}{0}\relax
-\contentsline {subsection}{\numberline {3.2.3}The Prefix Class}{11}
+\contentsline {subsection}{\numberline {3.2.2}The ExtractAndMoveMethodPrefixesExtractor Class}{13}
\defcounter {refsection}{0}\relax
-\contentsline {subsection}{\numberline {3.2.4}The PrefixSet Class}{11}
+\contentsline {subsection}{\numberline {3.2.3}The Prefix Class}{13}
\defcounter {refsection}{0}\relax
-\contentsline {subsection}{\numberline {3.2.5}Hacking the Refactoring Undo History}{11}
+\contentsline {subsection}{\numberline {3.2.4}The PrefixSet Class}{13}
+\defcounter {refsection}{0}\relax
+\contentsline {subsection}{\numberline {3.2.5}Hacking the Refactoring Undo History}{13}