class JavaImageIOIdentify implements Identify {

    public ServiceDescription describe() {
        ServiceDescription.Builder mds = new ServiceDescription.Builder(NAME, Identify.class.getCanonicalName());
        mds.description("A DigitalObject Identification Service based on the Java SE built-in ImageIO library.");
        mds.author("Andrew Jackson <Andrew.Jackson@bl.uk>");
        mds.classname(this.getClass().getCanonicalName());
        mds.version("1.0.1");
        mds.tool(JavaImageIOIdentify.tool);
        
        // FIXME Do This!
        
        // Get list of unique supported read formats
           String[] formatNames = ImageIO.getReaderFormatNames();
           formatNames = unique(formatNames);
           // e.g. png jpeg gif jpg
           
           // Get list of unique supported write formats
           formatNames = ImageIO.getWriterFormatNames();
           formatNames = unique(formatNames);
           // e.g. png jpeg jpg
           
           // Get list of unique MIME types that can be read
           formatNames = ImageIO.getReaderMIMETypes();
           formatNames = unique(formatNames);
           // e.g image/jpeg image/png image/x-png image/gif
           
           // Get list of unique MIME types that can be written
           formatNames = ImageIO.getWriterMIMETypes();
           formatNames = unique(formatNames);
           // e.g. image/jpeg image/png image/x-png
        
        List<URI> ifs = new ArrayList<URI>();
        for( String fmt_name : unique( ImageIO.getReaderFormatNames() ) ) {
            ifs.add( FormatRegistryFactory.getFormatRegistry().createExtensionUri( fmt_name ) );
        }
        mds.inputFormats(ifs.toArray(new URI[]{}));

        return mds.build();
    }

}