/*
* Created on Feb 4, 2010
* Created by Paul Gardner
*
* Copyright 2010 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 org.gudy.azureus2.plugins.utils;
import org.gudy.azureus2.plugins.PluginException;
public interface
FeatureManager
{
public Licence[]
getLicences();
public Licence[]
createLicences(
String[] feature_ids )
throws PluginException;
public Licence
addLicence(
String licence_key )
throws PluginException;
public FeatureDetails[]
getFeatureDetails(
String feature_id );
// feature present and not expired
public boolean
isFeatureInstalled(
String feature_id );
public void
refreshLicences();
public void
registerFeatureEnabler(
FeatureEnabler enabler );
public void
unregisterFeatureEnabler(
FeatureEnabler enabler );
public void
addListener(
FeatureManagerListener listener );
public void
removeListener(
FeatureManagerListener listener );
public interface
Licence
{
public final int LS_PENDING_AUTHENTICATION = 1;
public final int LS_AUTHENTICATED = 2;
public final int LS_INVALID_KEY = 3;
public final int LS_CANCELLED = 4;
public final int LS_REVOKED = 5;
public final int LS_ACTIVATION_DENIED = 6;
public int
getState();
public String
getKey();
public String
getShortID();
public FeatureDetails[]
getFeatures();
public boolean
isFullyInstalled();
public void
retryInstallation();
public void
addInstallationListener(
LicenceInstallationListener listener );
public void
removeInstallationListener(
LicenceInstallationListener listener );
public void
remove();
public interface
LicenceInstallationListener
{
public void
start(
String licence_key );
public void
reportActivity(
String licence_key,
String install,
String activity );
public void
reportProgress(
String licence_key,
String install,
int percent );
public void
complete(
String licence_key );
public void
failed(
String licence_key,
PluginException error );
}
}
public interface
FeatureEnabler
{
public Licence[]
getLicences();
public Licence[]
createLicences(
String[] feature_ids )
throws PluginException;
public Licence
addLicence(
String licence_key );
public void
refreshLicences();
public void
addListener(
FeatureManagerListener listener );
public void
removeListener(
FeatureManagerListener listener );
}
public interface
FeatureDetails
{
public String PR_PUBLIC_KEY = "PublicKey"; // String
public String PR_VALID_UNTIL = "ValidUntil"; // Long
public String PR_OFFLINE_VALID_UNTIL = "OfflineValidUntil"; // Long
public String PR_IS_INSTALL_TIME = "IsInstallTime"; // Long (0=false)
public String PR_IS_TRIAL = "IsTrial"; // Long (0=false)
public String PR_TRIAL_USES_LIMIT = "TrialUsesLimit"; // Long
public String PR_TRIAL_USES_FAIL_COUNT = "TrialUsesFailCount"; // Long
public String PR_TRIAL_USES_REMAINING = "TrialUsesRemaining"; // Long
public String PR_REQUIRED_PLUGINS = "Plugins"; // String: comma separated plugin ids
public String PR_FINGERPRINT = "Fingerprint"; // String
public String PR_RENEWAL_KEY = "RenewalKey"; // String
public Licence
getLicence();
public String
getID();
/**
* Returns true if offline expired or overall expired.
* NOT to be used by verified plugins, they must do the check explicitly using the
* signed properties
* @return
*/
public boolean
hasExpired();
public byte[]
getEncodedProperties();
public byte[]
getSignature();
public Object
getProperty(
String propery_name );
public void
setProperty(
String property_name,
Object property_value );
}
public interface
FeatureManagerListener
{
public void
licenceAdded(
Licence licence );
public void
licenceChanged(
Licence licence );
public void
licenceRemoved(
Licence licence );
}
}