/*
DConnectSDKFactory.java
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.message;
import android.content.Context;
/**
* DConnectSDKの実装クラスを生成するファクトリークラス.
* @author NTT DOCOMO, INC.
*/
public final class DConnectSDKFactory {
/**
* DConnectSDKのタイプ.
*/
public enum Type {
/**
* HTTP通信を行うDConnectSDK実装タイプ.
*/
HTTP,
/**
* Intent通信を行うDConnectSDK実装タイプ.
*/
INTENT
}
private DConnectSDKFactory() {
}
/**
* DConnectSDKの実装クラスを生成する.
* <p>
* この関数を呼び出すごとに新規にDConnectSDKを生成してします。<br>
* アプリで使用する場合には、できるだけDConnectSDKのインスタンスを使いまわしてください。
* </p>
* <h3>サンプルコード</h3>
* <pre>
* DConnectSDK httpSDK = DConnectSDKFactory.create(context, DConnectSDKFactory.Type.HTTP);
* </pre>
* @param context コンテキスト
* @param type タイプ
* @return DConnectSDKの実装クラスのインスタンス
*/
public static DConnectSDK create(final Context context, final Type type) {
if (context == null) {
throw new NullPointerException("context is null.");
}
if (type == null) {
throw new NullPointerException("type is null.");
}
DConnectSDK sdk;
switch (type) {
case HTTP:
sdk = new HttpDConnectSDK();
break;
case INTENT:
sdk = new IntentDConnectSDK(context);
break;
default:
throw new IllegalArgumentException("type is invalid.");
}
sdk.setOrigin(context.getPackageName());
return sdk;
}
}