/* DConnectServiceProvider.java Copyright (c) 2016 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.service; import java.util.List; /** * Device Connect APIサービス管理インターフェース. * @author NTT DOCOMO, INC. */ public interface DConnectServiceProvider { /** * 指定されたサービスが登録されているかどうかを取得する. * @param serviceId サービスID * @return 管理されている場合は<code>true</code>. そうでない場合は<code>false</code> */ boolean hasService(String serviceId); /** * 登録されているサービスを取得する. * <p> * サービスIDがnullとなるDConnectServiceは存在し得ないため、<code>serviceId</code>に * <code>null</code>が指定された場合は常に<code>null</code>を返す. * </p> * @param serviceId サービスID * @return DConnectServiceのインスタンス. 登録されていない場合は<code>null</code> */ DConnectService getService(String serviceId); /** * 登録されているサービスのリストを取得する. * @return 登録されているサービスのリスト */ List<DConnectService> getServiceList(); /** * サービスを追加する. * <p> * 同一のサービスIDが追加された場合は上書きする. * </p> * @param service 追加するDConnectServiceのインスタンス */ void addService(DConnectService service); /** * サービスを削除する. * @param service 削除するDConnectServiceのインスタンス * @return 削除対象が存在した場合は<code>true</code>. そうでない場合は<code>false</code> */ boolean removeService(DConnectService service); /** * サービスを削除する. * <p> * サービスIDがnullとなるDConnectServiceは存在し得ないため、<code>serviceId</code>に * <code>null</code>が指定された場合は常に<code>null</code>を返す. * </p> * @param serviceId サービスID. * @return 削除されたDConnectServiceのインスタンス. 削除対象が存在しなかった場合は<code>null</code> */ DConnectService removeService(String serviceId); /** * すべてのサービスを削除する. */ void removeAllServices(); /** * サービスの追加または削除イベントを受信するためのリスナーを追加する. * @param listener リスナー */ void addServiceListener(DConnectServiceListener listener); /** * サービスの追加または削除イベントを受信するためのリスナーを削除する. * @param listener リスナー */ void removeServiceListener(DConnectServiceListener listener); }