/* * This is public domain software - that is, you can do whatever you want * with it, and include it software that is licensed under the GNU or the * BSD license, or whatever other licence you choose, including proprietary * closed source licenses. I do ask that you leave this header in tact. * * If you make modifications to this code that you think would benefit the * wider community, please send me a copy and I'll post it on my site. * * If you make use of this code, I'd appreciate hearing about it. * metadata_extractor [at] drewnoakes [dot] com * Latest version of this software kept at * http://drewnoakes.com/ * * Created by dnoakes on 26-Nov-2002 11:21:43 using IntelliJ IDEA. */ package com.drew.metadata; /** * Interface through which all classes responsible for decoding a particular type of metadata may be called. * Note that the data source is not specified on this interface. Instead it is suggested that implementations * take their data within a constructor. Constructors might be overloaded to allow for different sources, such as * files, streams and byte arrays. As such, instances of implementations of this interface would be single-use and * not threadsafe. */ public interface MetadataReader { // TODO is this overload needed? it is only used by unit tests... /** * Create a new Metadata instance and return it, populated with whatever directories this MetadataReader * implementation is responsible for. * @return The populated Metadata object. * @deprecated Use the overload that takes a Metadata object instead */ public Metadata extract(); /** * Extract metadata from the source and merge it into an existing Metadata object. * @return The updated Metadata object. */ public Metadata extract(Metadata metadata); }