<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Hi team,</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Back in the day, somewhere between the discovery of fire and the wheel, Java 5 introduced generics. This was a great step forwards, but also created some of the most horrible boiler-plated code you could imagine:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">    Map&lt;Guid, List&lt;Preson&lt;Guid&gt;&gt; = new HashMap&lt;Guid, List&lt;Preson&lt;Guid&gt;&gt;();</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Java 7 improved the situation by adding generic type inference, a.k.a the diamond operator [1]:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style=""><div class="gmail_default" style="font-family:monospace,monospace">    Map&lt;Guid, List&lt;Preson&lt;Guid&gt;&gt; = new HashMap&lt;&gt;();</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">This style is defacto the standard of the engine, with new patches using it and patches to fix old code that doesn&#39;t use it being accepted pretty quickly.</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">Since we defacto agreed on this standard, I&#39;d like to put my money where my mouth is, and make it a declarative standard.</div><div style="font-family:monospace,monospace">I have a series of patches [2] that fix **all** the occurrences of non-diamond declarations [3][4][5] (well, except for anonymous implementations like we have in the DAOs) and adds a checkstyle validation [6] to prevent further declarations like this from entering the project in the future.</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">Engine maintainers, please review and assist in getting this series merged.</div><div style="font-family:monospace,monospace">The rebase will be hellacious as it is, and I&#39;d like to minimize the effort as much as possible.</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">Thanks,</div><div style="font-family:monospace,monospace">Allon</div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace"><br></div><div style=""><font face="monospace, monospace">[1] <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html">http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-inference-generic-instance-creation.html</a></font></div><div style=""><font face="monospace, monospace">[2] </font><font face="monospace"><a href="https://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+topic:diamond">https://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+topic:diamond</a></font></div><div style=""><span style="font-family:monospace">[3] <a href="https://gerrit.ovirt.org/49490">https://gerrit.ovirt.org/49490</a></span><font face="monospace"><br></font></div><div style=""><span style="font-family:monospace">[4] </span><font face="monospace"><a href="https://gerrit.ovirt.org/49491">https://gerrit.ovirt.org/49491</a></font></div><div style=""><font face="monospace">[5] <a href="https://gerrit.ovirt.org/49492">https://gerrit.ovirt.org/49492</a></font></div><div style=""><font face="monospace">[6] <a href="https://gerrit.ovirt.org/49493">https://gerrit.ovirt.org/49493</a></font></div></div></div>