1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17/**
18 * @author Rustem V. Rafikov
19 * @version $Revision: 1.3 $
20 */
21
22package javax.imageio.spi;
23
24import javax.imageio.ImageTranscoder;
25
26/**
27 * The ImageTranscoderSpi class is a service provider interface (SPI) for
28 * ImageTranscoders.
29 *
30 * @since Android 1.0
31 */
32public abstract class ImageTranscoderSpi extends IIOServiceProvider implements RegisterableService {
33
34    /**
35     * Instantiates a new ImageTranscoderSpi.
36     */
37    protected ImageTranscoderSpi() {
38    }
39
40    /**
41     * Instantiates a new ImageTranscoderSpi with the specified vendor name and
42     * version.
43     *
44     * @param vendorName
45     *            the vendor name.
46     * @param version
47     *            the version.
48     */
49    public ImageTranscoderSpi(String vendorName, String version) {
50        super(vendorName, version);
51    }
52
53    /**
54     * Gets the class name of an ImageReaderSpi that produces IIOMetadata
55     * objects that can be used as input to this transcoder.
56     *
57     * @return the class name of an ImageReaderSpi.
58     */
59    public abstract String getReaderServiceProviderName();
60
61    /**
62     * Gets the class name of an ImageWriterSpi that produces IIOMetadata
63     * objects that can be used as input to this transcoder.
64     *
65     * @return the class name of an ImageWriterSpi.
66     */
67    public abstract String getWriterServiceProviderName();
68
69    /**
70     * Creates an instance of the ImageTranscoder associated with this service
71     * provider.
72     *
73     * @return the ImageTranscoder instance.
74     */
75    public abstract ImageTranscoder createTranscoderInstance();
76}
77