package com.o3dr.services.android.lib.drone.property;
import android.os.Parcel;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Created by fhuya on 10/28/14.
*/
public class Parameters implements DroneAttribute {
private final List<Parameter> parametersList = new ArrayList<>();
public Parameters(){
}
public Parameters(Collection<Parameter> parameterList) {
setParametersList(parameterList);
}
public List<Parameter> getParameters(){
return parametersList;
}
public @Nullable Parameter getParameter(String name){
if(TextUtils.isEmpty(name))
return null;
for(Parameter param: parametersList){
if(param.getName().equalsIgnoreCase(name))
return param;
}
return null;
}
public void setParametersList(Collection<Parameter> parametersList) {
this.parametersList.clear();
if(parametersList != null && !parametersList.isEmpty()) {
this.parametersList.addAll(parametersList);
}
}
/**
* Adds a parameter to the parameters set.
* @param parameter
* @since 2.8.0
*/
public void addParameter(@NonNull Parameter parameter){
if(parameter == null)
throw new NullPointerException("Invalid parameter argument.");
this.parametersList.add(parameter);
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(parametersList);
}
private Parameters(Parcel in) {
in.readTypedList(parametersList, Parameter.CREATOR);
}
public static final Creator<Parameters> CREATOR = new Creator<Parameters>() {
public Parameters createFromParcel(Parcel source) {
return new Parameters(source);
}
public Parameters[] newArray(int size) {
return new Parameters[size];
}
};
}