src/main/java/org/jfree/graphics2d/svg/SVGGraphics2D.java
@Override
    public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) {
        if (hintKey == null) {
            throw new NullPointerException("Null 'hintKey' not permitted.");
        }
        // KEY_BEGIN_GROUP and KEY_END_GROUP are handled as special cases that
        // never get stored in the hints map...
        if (SVGHints.isBeginGroupKey(hintKey)) {
            String groupId = null;
            String ref = null;
            List<Entry> otherKeysAndValues = null;
            if (hintValue instanceof String) {
                groupId = (String) hintValue;
             } else if (hintValue instanceof Map) {
                Map hintValueMap = (Map) hintValue;
                groupId = (String) hintValueMap.get("id");
                ref = (String) hintValueMap.get("ref");
                for (final Object obj: hintValueMap.entrySet()) {
                   final Entry e = (Entry) obj;
                   final Object key = e.getKey();
                   if ("id".equals(key) || "ref".equals(key)) {
                      continue;
                   }
                   if (otherKeysAndValues == null) {
                      otherKeysAndValues = new ArrayList<Entry>();
                   }
                   otherKeysAndValues.add(e);
                }
            }
            this.sb.append("<g");
            if (groupId != null) {
                if (this.elementIDs.contains(groupId)) {
                    throw new IllegalArgumentException("The group id (" 
                            + groupId + ") is not unique.");
                } else {
                    this.sb.append(" id=\"").append(groupId).append("\"");
                    this.elementIDs.add(groupId);
                }
            }
            if (ref != null) {
                this.sb.append(" jfreesvg:ref=\"");
                this.sb.append(SVGUtils.escapeForXML(ref)).append("\"");
            }
            if (otherKeysAndValues != null) {
               for (final Entry e: otherKeysAndValues) {
                    this.sb.append(" ").append(e.getKey()).append("=\"");
                    this.sb.append(SVGUtils.escapeForXML(String.valueOf(
                            e.getValue()))).append("\"");
               }
            }
            this.sb.append(">");
        } else if (SVGHints.isEndGroupKey(hintKey)) {
            this.sb.append("</g>\n");
        } else if (SVGHints.isElementTitleKey(hintKey) && (hintValue != null)) {
            this.sb.append("<title>");
            this.sb.append(SVGUtils.escapeForXML(String.valueOf(hintValue)));
            this.sb.append("</title>");     
        } else {
            this.hints.put(hintKey, hintValue);
        }
    }
@Override
    public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue) {
        if (hintKey == null) {
            throw new NullPointerException("Null 'hintKey' not permitted.");
        }
        // KEY_BEGIN_GROUP and KEY_END_GROUP are handled as special cases that
        // never get stored in the hints map...
        if (SVGHints.isBeginGroupKey(hintKey)) {
            String groupId = null;
            String ref = null;
            List<Entry> otherKeysAndValues = null;
            if (hintValue instanceof String) {
                groupId = (String) hintValue;
             } else if (hintValue instanceof Map) {
                Map hintValueMap = (Map) hintValue;
                groupId = (String) hintValueMap.get("id");
                ref = (String) hintValueMap.get("ref");
                for (final Object obj: hintValueMap.entrySet()) {
                   final Entry e = (Entry) obj;
                   final Object key = e.getKey();
                   if ("id".equals(key) || "ref".equals(key)) {
                      continue;
                   }
                   if (otherKeysAndValues == null) {
                      otherKeysAndValues = new ArrayList<Entry>();
                   }
                   otherKeysAndValues.add(e);
                }
            }
            this.sb.append("<g");
            if (groupId != null) {
                if (this.elementIDs.contains(groupId)) {
                    throw new IllegalArgumentException("The group id (" 
                            + groupId + ") is not unique.");
                } else {
                    this.sb.append(" id=\"").append(groupId).append("\"");
                    this.elementIDs.add(groupId);
                }
            }
            if (ref != null) {
                this.sb.append(" jfreesvg:ref=\"");
                this.sb.append(SVGUtils.escapeForXML(ref)).append("\"");
            }
            if (otherKeysAndValues != null) {
               for (final Entry e: otherKeysAndValues) {
                    this.sb.append(" ").append(e.getKey()).append("=\"");
                    this.sb.append(SVGUtils.escapeForXML(String.valueOf(
                            e.getValue()))).append("\"");
               }
            }
            this.sb.append(">");
        } else if (SVGHints.isEndGroupKey(hintKey)) {
            this.sb.append("</g>\n");
        } else if (SVGHints.isElementTitleKey(hintKey) && (hintValue != null)) {
            this.sb.append("<title>");
            this.sb.append(SVGUtils.escapeForXML(String.valueOf(hintValue)));
            this.sb.append("</title>");     
        } else {
            this.hints.put(hintKey, hintValue);
        }
    }
@ Override public void setRenderingHint ( RenderingHints . Key hintKey , Object hintValue ) { if ( hintKey == null ) { throw new NullPointerException ( "Null 'hintKey' not permitted." ) ; } // KEY_BEGIN_GROUP and KEY_END_GROUP are handled as special cases that // never get stored in the hints map... if ( SVGHints . isBeginGroupKey ( hintKey ) ) { String groupId = null ; String ref = null ; List < Entry > otherKeysAndValues = null ; if ( hintValue instanceof String ) { groupId = ( String ) hintValue ; } else if ( hintValue instanceof Map ) { Map hintValueMap = ( Map ) hintValue ; groupId = ( String ) hintValueMap . get ( "id" ) ; ref = ( String ) hintValueMap . get ( "ref" ) ; for ( final Object obj : hintValueMap . entrySet ( ) ) { final Entry e = ( Entry ) obj ; final Object key = e . getKey ( ) ; if ( "id" . equals ( key ) || "ref" . equals ( key ) ) { continue ; } if ( otherKeysAndValues == null ) { otherKeysAndValues = new ArrayList < Entry > ( ) ; } otherKeysAndValues . add ( e ) ; } } this . sb . append ( "<g" ) ; if ( groupId != null ) { if ( this . elementIDs . contains ( groupId ) ) { throw new IllegalArgumentException ( "The group id (" + groupId + ") is not unique." ) ; } else { this . sb . append ( " id=\"" ) . append ( groupId ) . append ( "\"" ) ; this . elementIDs . add ( groupId ) ; } } if ( ref != null ) { this . sb . append ( " jfreesvg:ref=\"" ) ; this . sb . append ( SVGUtils . escapeForXML ( ref ) ) . append ( "\"" ) ; } if ( otherKeysAndValues != null ) { for ( final Entry e : otherKeysAndValues ) { this . sb . append ( " " ) . append ( e . getKey ( ) ) . append ( "=\"" ) ; this . sb . append ( SVGUtils . escapeForXML ( String . valueOf ( e . getValue ( ) ) ) ) . append ( "\"" ) ; } } this . sb . append ( ">" ) ; } else if ( SVGHints . isEndGroupKey ( hintKey ) ) { this . sb . append ( "</g>\n" ) ; } else if ( SVGHints . isElementTitleKey ( hintKey ) && ( hintValue != null ) ) { this . sb . append ( "<title>" ) ; this . sb . append ( SVGUtils . escapeForXML ( String . valueOf ( hintValue ) ) ) ; this . sb . append ( "</title>" ) ; } else { this . hints . put ( hintKey , hintValue ) ; } }
Sets the value for a hint.  See the {@link SVGHints} class for
information about the hints that can be used with this implementation.

@param hintKey  the hint key ({@code null} not permitted).
@param hintValue  the hint value.

@see #getRenderingHint(java.awt.RenderingHints.Key)
Sets the value for a hint . See the { @link SVGHints } class for information about the hints that can be used with this implementation .