001/*
002 * flattr4j - A Java library for Flattr
003 *
004 * Copyright (C) 2011 Richard "Shred" Körber
005 *   http://flattr4j.shredzone.org
006 *
007 * This program is free software: you can redistribute it and/or modify
008 * it under the terms of the GNU General Public License / GNU Lesser
009 * General Public License as published by the Free Software Foundation,
010 * either version 3 of the License, or (at your option) any later version.
011 *
012 * Licensed under the Apache License, Version 2.0 (the "License");
013 * you may not use this file except in compliance with the License.
014 *
015 * This program is distributed in the hope that it will be useful,
016 * but WITHOUT ANY WARRANTY; without even the implied warranty of
017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
018 */
019package org.shredzone.flattr4j.connector;
020
021import org.shredzone.flattr4j.exception.FlattrException;
022
023/**
024 * Interface for connectors that create connections to the Flattr API.
025 *
026 * @author Richard "Shred" Körber
027 */
028public interface Connector {
029
030    /**
031     * Creates a new {@link Connection} for a call with request type
032     * {@link RequestType#GET}.
033     *
034     * @return {@link Connection} that was created
035     * @since 2.0
036     */
037    Connection create() throws FlattrException;
038
039    /**
040     * Creates a new {@link Connection} for a call with the given request type.
041     *
042     * @param type
043     *            {@link RequestType} to be used
044     * @return {@link Connection} that was created
045     * @since 2.0
046     */
047    Connection create(RequestType type) throws FlattrException;
048
049}