1 package org.fedoracommons.funapi; 2 3 /** 4 * 5 * 6 * @author Edwin Shin 7 * @since 0.1 8 * @version $Id: ObjectResolver.java 38 2008-10-25 23:11:02Z pangloss $ 9 */ 10 public interface ObjectResolver { 11 12 /** 13 * Provide the object formats which should be supported for all objects 14 * available through the unAPI service. 15 * 16 * @return UnapiFormats representing the object formats supported for all 17 * objects. 18 * @throws UnapiException 19 */ 20 UnapiFormats getFormats() throws UnapiException; 21 22 /** 23 * Provide a list of object formats available from the unAPI service for the 24 * object identified by <code>id</code>. 25 * It is similar to the {@link #getFormats() getFormats} response, but the 26 * returned UnapiFormats object must have the requested <code>id</code> set. 27 * 28 * @param id 29 * @return UnapiFormats representing the object formats supported for the 30 * requested object. 31 * @throws UnapiException 32 */ 33 UnapiFormats getFormats(String id) throws UnapiException; 34 35 /** 36 * <p>Return an {@link UnapiObject UnapiObject} representing the object 37 * specified by <code>id</code> in the format specified by 38 * <code>format</code>.</p> 39 * 40 * <p>Implementations should throw an {@link IdentifierException 41 * IdentifierException} for requests for an identifier that is not available 42 * on the server. 43 * Implementations should throw a {@link FormatException FormatException} 44 * for requests for an identifier that is available on the server in a 45 * format that is not available for that identifier.</p> 46 * 47 * @param id 48 * @param format 49 * @return UnapiObject 50 * @throws UnapiException 51 */ 52 UnapiObject getObject(String id, String format) throws UnapiException; 53 }