JavaImageIOCompare implements Compare { public ServiceDescription describe() { ServiceDescription.Builder mds = new ServiceDescription.Builder(NAME, Compare.class.getCanonicalName()); mds.description("A Raster DigitalObject Comparison 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); List<URI> ifs = new ArrayList<URI>(); for( String fmt_name : JavaImageIOIdentify.unique(ImageIO.getReaderFormatNames()) ) { ifs.add( FormatRegistryFactory.getFormatRegistry().createExtensionUri( fmt_name ) ); } mds.inputFormats(ifs.toArray(new URI[]{})); return mds.build(); }  static PropertyComparison buildPsnrProperty( double psnr ); CompareResult compare(DigitalObject first, DigitalObject second,
            List<Parameter> config); List<Parameter> convert(DigitalObject configFile); ServiceDescription describe(); static void main( String[] args ); static final String NAME; static final URI PSNR_URI; }
@Test public void testDescribe() { ServiceDescription desc = ids.describe(); assertTrue("The ServiceDescription should not be NULL.", desc != null ); System.out.println("Recieved service description: " + desc.toXmlFormatted()); }