diff options
Diffstat (limited to 'src/org/lineageos/eleven/lastfm/ItemFactory.java')
-rw-r--r-- | src/org/lineageos/eleven/lastfm/ItemFactory.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/org/lineageos/eleven/lastfm/ItemFactory.java b/src/org/lineageos/eleven/lastfm/ItemFactory.java new file mode 100644 index 0000000..f440fa4 --- /dev/null +++ b/src/org/lineageos/eleven/lastfm/ItemFactory.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2012, the Last.fm Java Project and Committers All rights + * reserved. Redistribution and use of this software in source and binary forms, + * with or without modification, are permitted provided that the following + * conditions are met: - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. THIS SOFTWARE IS + * PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.cyanogenmod.eleven.lastfm; + +/** + * An <code>ItemFactory</code> can be used to instantiate a value object - such + * as Artist, Album, Track, Tag - from an XML element. Use the + * {@link ItemFactoryBuilder} to obtain item factories for a specific type. + * + * @author Janni Kovacs + * @see com.cyanogenmod.eleven.lastfm.api.ItemFactoryBuilder + * @see ResponseBuilder + */ +interface ItemFactory<T> { + + /** + * Create a new instance of the type <code>T</code>, based on the passed + * {@link DomElement}. + * + * @param element the XML element + * @return a new object + */ + public T createItemFromElement(DomElement element); + +} |