java: no need to explicitly extend java.lang.Object

Change-Id: I635d1f99aa104909bd53a49c18efd433b9b9cb98
java: remove useless overriding methods

that only call their superclass method

Change-Id: I9be2f69be132eec7918964f504c50df0ae8401a2
java: no need to check for null before calling instanceof

the instanceof check returns false when passed a null value

Change-Id: I7742d0d9cf25ef23d9adee7328f701c7efeea8b5
fix classname in logger

Change-Id: Id4d954059d63036b78cfeb7b14a7ebd8eae73f46
java: remove unnecessary adding of empty strings

Change-Id: I3825ea5fb1eb34ca52659350e202f95abea945a9
java: optimise calls to toArray

passing in a correctly sized array requires one less allocation

Change-Id: I6198d226d9b630c99c4e8b6e3d0fdf890c495b44
java: remove some unnecessary intermediary object creation

Change-Id: Id4949fa08546e710fbf9bd0c7e3bf62979f29c83
java: log exceptions correctly, using the right version of WARN

Change-Id: Ide21786d5275802ee60de2d5f056aa08cc8497ca
java: simplify conditions involving logical negation

Change-Id: Ib45e58273e650ef9a31dbdb5f71e995a5976f50e
java: use equals() to compare Strings, not ==

Change-Id: Ia41a4899fb82df7b580a020765404c4ef0cddfa2
java: use equalsIgnoreCase() instead of toLowerCase().equals()

Change-Id: I8f4afc7e15a9d85d99ea80edbbbd2b507b254ddc
java: use isEmpty() instead of "size() == 0"

Change-Id: I23e1038246999b0744d8e9ae83b66fa1f7dafa99
while loop that ends in a return is more accurately an if block

Change-Id: I94b74b46b185e1061b6b72acdf3d9dc0c1d122c8
java: simplify some for loops to while loops

Change-Id: I323ab12c634d3baa4f624b63d7d483112c23192c
LocalOffice should be an abstract class

Change-Id: I9531b64dc8cb2545dfc41ae4d69007eced8f2d26