ParametersDAOImpl.java
package it.unisa.c03.myPersonalTrainer.parameters.dao;
import com.google.api.core.ApiFuture;
import com.google.cloud.firestore.CollectionReference;
import com.google.cloud.firestore.DocumentSnapshot;
import com.google.cloud.firestore.Query;
import com.google.cloud.firestore.QuerySnapshot;
import it.unisa.c03.myPersonalTrainer.firebase.DBConnection;
import it.unisa.c03.myPersonalTrainer.parameters.bean.Parameters;
import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;
/**
* this is an implementation of ParametersDAO.
*/
public class ParametersDAOImpl implements ParametersDAO {
/**
* this method allows to insert user parameters into database.
* @param parameters the parameters to add into database
*/
@Override
public boolean insertParameters(
Parameters parameters) throws IOException {
DBConnection.getConnection().collection(
"Parameters").add(parameters);
return true;
}
/**
* this method show the parameters for the input email.
* @param email client mail to retrieve his parameters
* @return a list of client parameters
*/
@Override
public ArrayList<Parameters> selectByMail(
String email) throws
InterruptedException, IOException, ExecutionException {
// Create a reference to the account collection
CollectionReference parameters = null;
parameters = DBConnection.getConnection().collection("Parameters");
// Create a query against the collection.
Query query = parameters.whereEqualTo("mailClient", email);
// retrieve query results asynchronously using query.get()
ApiFuture<QuerySnapshot> querySnapshot = query.get();
//create Bean to return document.get("email"));
ArrayList<Parameters> list = new ArrayList<Parameters>();
for (DocumentSnapshot document
: querySnapshot.get().getDocuments()) {
Parameters params = new Parameters();
params.setfatMass((Double)
document.get("fatMass"));
params.setleanMass((Double)
document.get("leanMass"));
params.setweight((Double)
document.get("weight"));
params.setMailClient(
String.valueOf(document.get("mailClient")));
params.setinsertionDate(
String.valueOf(document.get("insertionDate")));
list.add(params);
}
return list;
}
}