code: public double render(Graphics2D g2) {
  		try {
  			char charDeco = getMusicalFont().getDecoration(
  					m_decoration, m_isInverted);
  			Rectangle2D bounds = getMetrics().getBounds(charDeco);
  			double x = getBase().getX() - bounds.getWidth()/2;
  			double y = getBase().getY();
  			if (getPosition() == MIDDLE_STAFF)
  				y = getBase().getY() + bounds.getHeight()/2;
  			if (m_scoreElement != null) {
  				boolean isUnderNote = y > m_scoreElement.getBase().getY();
  				if (isUnderNote)
  					y += bounds.getHeight();
  				//avoid collisions
  				double offset = getMetrics().getNoteHeight() / 2;
  				
  				//first decoration is on top
  				for (int i = m_scoreElement.m_jDecorations.size()-1; i >= 0; i--) {
  					//JDecoration jdec = (JDecoration) it.next();
  					JDecoration jdec = (JDecoration) m_scoreElement.m_jDecorations.elementAt(i);
  					if (jdec == this)
  						break;
  					if (jdec.getBase().equals(getBase())) {
  						if (isUnderNote)
  							y = y + offset + jdec.getHeight();
  						else
  							y = y - offset - jdec.getHeight();
  					}
  				}
  			}
  			//if (m_isInverted) y += bounds.getHeight();
  			g2.drawChars(new char[] { charDeco }, 0, 1,
  					(int)x, (int)y);
  			return bounds.getWidth();
  		} catch (MissingGlyphException mge) {
  			return 0;
  		}
  	}
docs: Renders this Score element to the given graphic context.