I am puzzled by this:
private RenderingHints hints;
public void addRenderingHints(Map hints) {
hints.putAll(hints);
}
Both Map and RenderingHints have a putAll member functions:
https://docs.oracle.com/javase/8/docs/api/java/awt/RenderingHints.html#putAll-java.util.Map-
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html#putAll-java.util.Map-
I have learned that local parameters can shadow instance variables. So what does this part of code do (useful)?