class JavaImageIOMigrate implements Migrate {

    public ServiceDescription describe() {    	
        ServiceDescription.Builder sd = new ServiceDescription.Builder( NAME, Migrate.class.getCanonicalName());
        sd.author("Andrew Jackson <Andrew.Jackson@bl.uk>");
        sd.description("A wrapper for the migrations supported by the Java SE built-in ImageIO library.");
        sd.classname(this.getClass().getCanonicalName());
        sd.version("1.0.1");
        sd.tool(JavaImageIOIdentify.tool);
        
        // Migration Paths: List all combinations:
        List<MigrationPath> paths = new ArrayList<MigrationPath>();
        for ( String i : JavaImageIOIdentify.unique( ImageIO.getReaderFormatNames() ) ) {
                for (String j : JavaImageIOIdentify.unique( ImageIO.getWriterFormatNames() )) {
                    if (!i.equalsIgnoreCase(j) ) {
                    
                        MigrationPath p = new MigrationPath(
                                format.createExtensionUri(i), 
                                format.createExtensionUri(j), 
                                null );
                        paths.add(p);
                    }
                    
                }
        }
        sd.paths(paths.toArray(new MigrationPath[]{}));
        
        return sd.build();
    }

}