JEqualityGen: Generating Equality and Hashing Methods

Grech, Neville, Fischer, Bernd and Rathke, Julian (2010) JEqualityGen: Generating Equality and Hashing Methods. At Generative Programming and Component Engineering,, Eindhoven, The , Netherlands, 10 - 13 Oct 2010. Association for Computing Machinery, 177-186.


[img] PDF - Version of Record
Download (291Kb)


Manually implementing equals (for object comparisons) and hashCode (for object hashing) methods in large software projects is tedious and error-prone. This is due to many special cases, such as field shadowing, comparison between different types, or cyclic object graphs. Here, we present JEqualityGen, a source code generator that automatically derives implementations of these methods. JEqualityGen proceeds in two states: it first uses source code reflection in MetaAspectJ to generate aspects that contain the method implementations, before it uses weaving on the bytecode level to insert these into the target application. JEqualityGen generates not only correct, but efficient source code that on a typical large-scale Java application exhibits a performance improvement of more than two orders of magnitude in the equality operations generated, compared to an existing system based on runtime reflection. JEqualityGen achieves this by generating runtime profiling code that collects data. This enables it to generate optimised method implementations in a second round.

Item Type: Conference or Workshop Item (Speech)
Additional Information: Event Dates: October 10-13, 2010
ISBNs: 9781450301541
Keywords: meta-programming, equality, hashing, code generation, Java, Scala, AspectJ, AOP
Divisions : Faculty of Physical Sciences and Engineering > Electronics and Computer Science > Electronic & Software Systems
ePrint ID: 271893
Accepted Date and Publication Date:
10 October 2010Published
Date Deposited: 11 Jan 2011 13:09
Last Modified: 31 Mar 2016 14:19
Customization and Adaptation of Automatically Generated Code
Funded by: EPSRC (EP/F052669/1)
Led by: Bernd Fischer
1 July 2008 to 30 June 2011
Further Information:Google Scholar

Actions (login required)

View Item View Item

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics