001/* =================================================== 002 * JFreeSVG : an SVG library for the Java(tm) platform 003 * =================================================== 004 * 005 * (C)opyright 2013-2021, by Object Refinery Limited. All rights reserved. 006 * 007 * Project Info: http://www.jfree.org/jfreesvg/index.html 008 * 009 * This program is free software: you can redistribute it and/or modify 010 * it under the terms of the GNU General Public License as published by 011 * the Free Software Foundation, either version 3 of the License, or 012 * (at your option) any later version. 013 * 014 * This program is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU General Public License for more details. 018 * 019 * You should have received a copy of the GNU General Public License 020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 021 * 022 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 023 * Other names may be trademarks of their respective owners.] 024 * 025 * If you do not wish to be bound by the terms of the GPL, an alternative 026 * commercial license can be purchased. For details, please see visit the 027 * JFreeSVG home page: 028 * 029 * http://www.jfree.org/jfreesvg 030 * 031 */ 032 033package org.jfree.graphics2d.svg; 034 035import java.awt.Image; 036import org.jfree.graphics2d.Args; 037 038/** 039 * A {@code (String, Image)} pair that links together a reference ID and 040 * the source image. This is used internally by {@link SVGGraphics2D} to track 041 * images as they are rendered. This is important when images are not embedded 042 * in the SVG output, in which case you may need to generate corresponding 043 * image files for the images (see also {@link SVGGraphics2D#getSVGImages()}). 044 */ 045public final class ImageElement { 046 047 /** The filename specified in the href. */ 048 private String href; 049 050 /** The image. */ 051 private Image image; 052 053 /** 054 * Creates a new instance. 055 * 056 * @param href the href ({@code null} not permitted). 057 * @param image the image ({@code null} not permitted). 058 */ 059 public ImageElement(String href, Image image) { 060 Args.nullNotPermitted(href, "href"); 061 Args.nullNotPermitted(image, "image"); 062 this.href = href; 063 this.image = image; 064 } 065 066 /** 067 * Returns the reference ID that was specified in the constructor. 068 * 069 * @return The href (never {@code null}). 070 */ 071 public String getHref() { 072 return href; 073 } 074 075 /** 076 * Returns the image that was specified in the constructor. 077 * 078 * @return The image (never {@code null}). 079 */ 080 public Image getImage() { 081 return image; 082 } 083 084 /** 085 * Returns a string representation of this object, primarily for debugging 086 * purposes. 087 * 088 * @return A string. 089 */ 090 @Override 091 public String toString() { 092 StringBuilder sb = new StringBuilder(); 093 sb.append("ImageElement["); 094 sb.append(this.href).append(", ").append(this.image); 095 sb.append("]"); 096 return sb.toString(); 097 } 098 099}