/*
* Created on Jul 11, 2008
* Created by Paul Gardner
*
* Copyright 2008 Vuze, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License only.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/
package com.aelitis.azureus.core.subs;
import org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl;
import com.aelitis.azureus.core.metasearch.Engine;
import com.aelitis.azureus.core.vuzefile.VuzeFile;
public interface
Subscription
extends UtilitiesImpl.PluginSubscription
{
public static final int AZ_VERSION = 1;
public static final Object VUZE_FILE_COMPONENT_SUBSCRIPTION_KEY = new Object();
/**
* Returns local name if set
* @return
*/
public String
getName();
public String
getName(
boolean use_local );
public void
setLocalName(
String str );
public void
setName(
String str )
throws SubscriptionException;
public String
getNameEx();
public String
getID();
public byte[]
getPublicKey();
public int
getVersion();
public long
getAddTime();
public int
getHighestVersion();
public void
resetHighestVersion();
public int
getAZVersion();
public boolean
isMine();
public boolean
isPublic();
public void
setPublic(
boolean is_public )
throws SubscriptionException;
public boolean
isUpdateable();
public boolean
isShareable();
public boolean
isSearchTemplate();
public boolean
isSearchTemplateImportable();
public VuzeFile
getSearchTemplateVuzeFile();
public String
getJSON()
throws SubscriptionException;
public boolean
setJSON(
String json )
throws SubscriptionException;
public boolean
isSubscribed();
public void
setSubscribed(
boolean subscribed );
public void
getPopularity(
SubscriptionPopularityListener listener )
throws SubscriptionException;
public boolean
setDetails(
String name,
boolean is_public,
String json )
throws SubscriptionException;
public String
getReferer();
public long
getCachedPopularity();
public void
addAssociation(
byte[] hash );
public void
addPotentialAssociation(
String result_id,
String key );
public int
getAssociationCount();
public boolean
hasAssociation(
byte[] hash );
public String
getCategory();
public void
setCategory(
String category );
public long
getTagID();
public void
setTagID(
long tag_id );
public Engine
getEngine()
throws SubscriptionException;
public Subscription
cloneWithNewEngine(
Engine engine )
throws SubscriptionException;
public boolean
isAutoDownloadSupported();
public VuzeFile
getVuzeFile()
throws SubscriptionException;
public void
setCreatorRef(
String str );
public String
getCreatorRef();
public void
reset();
public void
remove();
public SubscriptionManager
getManager();
public SubscriptionHistory
getHistory();
/**
* shortcut to help plugin interface
* @param l
*/
public SubscriptionResult[]
getResults(
boolean include_deleted );
public void
addListener(
SubscriptionListener l );
public void
removeListener(
SubscriptionListener l );
public void
setUserData(
Object key,
Object data );
public Object
getUserData(
Object key );
public String
getString();
}