package org.hadatac.console.controllers.metadataacquisition; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import play.mvc.Controller; import play.mvc.Result; import org.hadatac.entity.pojo.Measurement; import org.hadatac.metadata.loader.ValueCellProcessing; import org.hadatac.console.views.html.metadataacquisition.*; import org.hadatac.data.model.AcquisitionQueryResult; import org.apache.commons.io.FileUtils; import org.hadatac.console.controllers.AuthApplication; import org.apache.commons.lang3.StringUtils; import be.objectify.deadbolt.java.actions.Group; import be.objectify.deadbolt.java.actions.Restrict; public class ViewValue extends Controller { public static List<Measurement> findValue(String user_uri, String study_uri, String subject_uri, String char_uri) { AcquisitionQueryResult result = new AcquisitionQueryResult(); result = Measurement.findForViews(user_uri, study_uri, subject_uri, char_uri); return result.documents; } @Restrict(@Group(AuthApplication.DATA_OWNER_ROLE)) public static Result index(String user_uri, String study_uri, String subject_uri, String char_uri) { List<Measurement> indicatorValueResults = findValue(user_uri, study_uri, subject_uri, char_uri); if (indicatorValueResults == null){ List<Measurement> indicatorValueResults2 = new ArrayList<Measurement>(); File indicator_detail_csv = new File("/data/indicatorDetails.csv"); try { FileUtils.writeStringToFile(indicator_detail_csv, "", false); } catch (IOException e) { e.printStackTrace(); } try { FileUtils.writeStringToFile(indicator_detail_csv, "NULL"); } catch (IOException e) { e.printStackTrace(); } // return ok(indicator_detail_csv); return ok(viewValue.render(indicatorValueResults2)); } else{ File indicator_detail_csv = new File("/data/indicatorDetails.csv"); try { FileUtils.writeStringToFile(indicator_detail_csv, "", false); } catch (IOException e) { e.printStackTrace(); } for(int i=0; i<indicatorValueResults.size(); i++){ List<String> temp_sentence = new ArrayList<String>(); temp_sentence.add(indicatorValueResults.get(i).getObjectUri().toString()); temp_sentence.add(indicatorValueResults.get(i).getCharacteristic().toString()); temp_sentence.add(indicatorValueResults.get(i).getValue().toString()); String sentence = StringUtils.join(temp_sentence, ','); try { FileUtils.writeStringToFile(indicator_detail_csv, sentence+"\n", true); } catch (IOException e) { e.printStackTrace(); } } return ok(viewValue.render(indicatorValueResults)); } } @Restrict(@Group(AuthApplication.DATA_OWNER_ROLE)) public static Result postIndex(String user_uri, String study_uri, String subject_uri, String char_uri) { return index(user_uri, study_uri, subject_uri, char_uri); } }