1/* 2 * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26package javax.imageio.spi; 27 28import javax.imageio.ImageTranscoder; 29 30/** 31 * The service provider interface (SPI) for {@code ImageTranscoder}s. 32 * For more information on service provider classes, see the class comment 33 * for the {@code IIORegistry} class. 34 * 35 * @see IIORegistry 36 * @see javax.imageio.ImageTranscoder 37 * 38 */ 39public abstract class ImageTranscoderSpi extends IIOServiceProvider { 40 41 /** 42 * Constructs a blank {@code ImageTranscoderSpi}. It is up 43 * to the subclass to initialize instance variables and/or 44 * override method implementations in order to provide working 45 * versions of all methods. 46 */ 47 protected ImageTranscoderSpi() { 48 } 49 50 /** 51 * Constructs an {@code ImageTranscoderSpi} with a given set 52 * of values. 53 * 54 * @param vendorName the vendor name. 55 * @param version a version identifier. 56 */ 57 public ImageTranscoderSpi(String vendorName, 58 String version) { 59 super(vendorName, version); 60 } 61 62 /** 63 * Returns the fully qualified class name of an 64 * {@code ImageReaderSpi} class that generates 65 * {@code IIOMetadata} objects that may be used as input to 66 * this transcoder. 67 * 68 * @return a {@code String} containing the fully-qualified 69 * class name of the {@code ImageReaderSpi} implementation class. 70 * 71 * @see ImageReaderSpi 72 */ 73 public abstract String getReaderServiceProviderName(); 74 75 /** 76 * Returns the fully qualified class name of an 77 * {@code ImageWriterSpi} class that generates 78 * {@code IIOMetadata} objects that may be used as input to 79 * this transcoder. 80 * 81 * @return a {@code String} containing the fully-qualified 82 * class name of the {@code ImageWriterSpi} implementation class. 83 * 84 * @see ImageWriterSpi 85 */ 86 public abstract String getWriterServiceProviderName(); 87 88 /** 89 * Returns an instance of the {@code ImageTranscoder} 90 * implementation associated with this service provider. 91 * 92 * @return an {@code ImageTranscoder} instance. 93 */ 94 public abstract ImageTranscoder createTranscoderInstance(); 95} 96