/*
DevicePlugin.java
Copyright (c) 2014 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.manager;
import android.content.ComponentName;
import android.graphics.drawable.Drawable;
import org.deviceconnect.android.manager.util.VersionName;
import java.util.ArrayList;
import java.util.List;
/**
* デバイスプラグイン.
* @author NTT DOCOMO, INC.
*/
public class DevicePlugin {
/** デバイスプラグインのパッケージ名. */
private String mPackageName;
/** デバイスプラグインのクラス名. */
private String mClassName;
/** デバイスプラグインのバージョン名. */
private String mVersionName;
/** プラグインID. */
private String mPluginId;
/** デバイスプラグイン名. */
private String mDeviceName;
/* プラグインアイコン. */
private Drawable mPluginIcon;
/** Class name of service for restart. */
private String mStartServiceClassName;
/* プラグインSDKバージョン名. */
private VersionName mPluginSdkVersionName;
/**
* サポートしているプロファイルを格納する.
*/
private List<String> mSupports = new ArrayList<String>();
/**
* デバイスプラグインのパッケージ名を取得する.
* @return パッケージ名
*/
public String getPackageName() {
return mPackageName;
}
/**
* デバイスプラグインのパッケージ名を設定する.
* @param packageName パッケージ名
*/
public void setPackageName(final String packageName) {
this.mPackageName = packageName;
}
/**
* デバイスプラグインのバージョン名を取得する.
* @return バージョン名
*/
public String getVersionName() {
return mVersionName;
}
/**
* デバイスプラグインのバージョン名を設定する.
* @param versionName バージョン名
*/
public void setVersionName(final String versionName) {
mVersionName = versionName;
}
/**
* デバイスプラグインのクラス名を取得する.
* @return クラス名
*/
public String getClassName() {
return mClassName;
}
/**
* デバイスプラグインのクラス名を設定する.
* @param className クラス名
*/
public void setClassName(final String className) {
this.mClassName = className;
}
/**
* デバイスプラグインIDを取得する.
* @return デバイスプラグインID
*/
public String getPluginId() {
return mPluginId;
}
/**
* デバイスプラグインIDを設定する.
* @param pluginId デバイスプラグインID
*/
public void setPluginId(final String pluginId) {
this.mPluginId = pluginId;
}
/**
* デバイスプラグイン名を取得する.
* @return デバイスプラグイン名
*/
public String getDeviceName() {
return mDeviceName;
}
/**
* デバイスプラグイン名を設定する.
* @param deviceName デバイスプラグイン名
*/
public void setDeviceName(final String deviceName) {
mDeviceName = deviceName;
}
/**
* ComponentNameを取得する.
* @return ComponentNameのインスタンス
*/
public ComponentName getComponentName() {
return new ComponentName(mPackageName, mClassName);
}
/**
* Get a class name of service for restart.
* @return class name or null if there are no service for restart
*/
public String getStartServiceClassName() {
return mStartServiceClassName;
}
/**
* Set a class name of service for restart.
* @param className class name
*/
public void setStartServiceClassName(final String className) {
this.mStartServiceClassName = className;
}
/**
* サポートするプロファイルを追加する.
* @param profileName プロファイル名
*/
public void addProfile(final String profileName) {
mSupports.add(profileName);
}
/**
* サポートするプロファイルを設定する.
* @param profiles プロファイル名一覧
*/
public void setSupportProfiles(final List<String> profiles) {
mSupports = profiles;
}
/**
* デバイスプラグインがサポートするプロファイルの一覧を取得する.
* @return サポートするプロファイルの一覧
*/
public List<String> getSupportProfiles() {
return mSupports;
}
public boolean supportsProfile(final String profileName) {
if (mSupports == null) {
return false;
}
for (String support : mSupports) {
if (support.equalsIgnoreCase(profileName)) { // MEMO パスの大文字小文字無視
return true;
}
}
return false;
}
/**
* デバイスプラグインSDKのバージョンを設定する.
* @param pluginSdkVersionName デバイスプラグインSDKのバージョン
*/
public void setPluginSdkVersionName(final VersionName pluginSdkVersionName) {
mPluginSdkVersionName = pluginSdkVersionName;
}
/**
* デバイスプラグインSDKのバージョンを取得する.
* @return デバイスプラグインSDKのバージョン
*/
public VersionName getPluginSdkVersionName() {
return mPluginSdkVersionName;
}
/**
* デバイスプラグインのアイコンデータを設定する.
* @param icon デバイスプラグインのアイコンデータ
*/
public void setPluginIcon(final Drawable icon) {
mPluginIcon = icon;
}
/**
* デバイスプラグインのアイコンデータを取得する.
* @return デバイスプラグインのアイコンデータ
*/
public Drawable getPluginIcon() {
return mPluginIcon;
}
@Override
public String toString() {
return "{\n" +
" DeviceName: " + getDeviceName() + "\n" +
" ServiceId: " + getPluginId() + "\n" +
" Package: " + getPackageName() + "\n" +
" Class: " + getClassName() + "\n" +
" Version: " + getVersionName() + "\n" +
"}";
}
}