models.DataSet.java Source code

Java tutorial

Introduction

Here is the source code for models.DataSet.java

Source

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package models;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import util.APICall;
import util.Constants;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;

public class DataSet {

    private String id;
    private String dataSetName;
    private String agencyId;
    private String instrument;
    private String physicalVariable;
    private String CMIP5VarName;
    private String units;
    private String gridDimension;
    private String source;
    private String status;
    private String ResponsiblePerson;
    private String comments;
    private String dataSourceName;
    private String variableName;
    private String dataSourceInput;
    private String variableNameInput;
    private String startTime;
    private String endTime;

    public String getStartTime() {
        return startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String dataSetEndTime) {
        this.endTime = dataSetEndTime;
    }

    public void setStartTime(String dataSetStartTime) {
        this.startTime = dataSetStartTime;
    }

    public String getDataSetName() {
        return dataSetName;
    }

    public void setDataSetName(String dataSetName) {
        this.dataSetName = dataSetName;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAgencyId() {
        return agencyId;
    }

    public void setAgencyId(String agencyId) {
        this.agencyId = agencyId;
    }

    public String getInstrument() {
        return instrument;
    }

    public void setInstrument(String instrument) {
        this.instrument = instrument;
    }

    public String getPhysicalVariable() {
        return physicalVariable;
    }

    public void setPhysicalVariable(String physicalVariable) {
        this.physicalVariable = physicalVariable;
    }

    public String getCMIP5VarName() {
        return CMIP5VarName;
    }

    public void setCMIP5VarName(String cMIP5VarName) {
        CMIP5VarName = cMIP5VarName;
    }

    public String getUnits() {
        return units;
    }

    public void setUnits(String units) {
        this.units = units;
    }

    public String getGridDimension() {
        return gridDimension;
    }

    public void setGridDimension(String gridDimension) {
        this.gridDimension = gridDimension;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getResponsiblePerson() {
        return ResponsiblePerson;
    }

    public void setResponsiblePerson(String responsiblePerson) {
        ResponsiblePerson = responsiblePerson;
    }

    public String getComments() {
        return comments;
    }

    public void setComments(String comments) {
        this.comments = comments;
    }

    public String getDataSourceName() {
        return dataSourceName;
    }

    public void setDataSourceName(String dataSourceName) {
        this.dataSourceName = dataSourceName;
    }

    public String getVariableName() {
        return variableName;
    }

    public void setVariableName(String variableName) {
        this.variableName = variableName;
    }

    public String getDataSourceInput() {
        return dataSourceInput;
    }

    public void setDataSourceInput(String dataSourceInput) {
        this.dataSourceInput = dataSourceInput;
    }

    public String getVariableNameInput() {
        return variableNameInput;
    }

    public void setVariableNameInput(String variableNameInput) {
        this.variableNameInput = variableNameInput;
    }

    private static final String GET_ALL_DATASET = Constants.NEW_BACKEND + "dataset/getAllDatasets/json";
    private static final String DATASET_QUERY = Constants.NEW_BACKEND + "dataset/queryDataset";

    public static List<DataSet> all() {

        List<DataSet> dataSets = new ArrayList<DataSet>();

        JsonNode dataSetNode = APICall.callAPI(GET_ALL_DATASET);

        if (dataSetNode == null || dataSetNode.has("error") || !dataSetNode.isArray()) {
            return dataSets;
        }

        for (int i = 0; i < dataSetNode.size(); i++) {
            JsonNode json = dataSetNode.path(i);
            DataSet dataset = new DataSet();
            dataset.setId(json.get("id").asText());
            dataset.setDataSetName(json.get("name").asText());
            dataset.setAgencyId(json.get("agencyId").asText());
            dataset.setInstrument(json.get("instrument").get("name").asText());
            dataset.setPhysicalVariable(json.get("physicalVariable").asText());
            dataset.setCMIP5VarName(json.get("CMIP5VarName").asText());
            dataset.setUnits(json.get("units").asText());
            dataset.setGridDimension(json.get("gridDimension").asText());
            dataset.setSource(json.get("source").asText());
            dataset.setStatus(json.get("status").asText());
            dataset.setResponsiblePerson(json.get("responsiblePerson").asText());
            dataset.setDataSourceName(json.get("dataSourceNameinWebInterface").asText());
            dataset.setVariableName(json.get("variableNameInWebInterface").asText());
            dataset.setDataSourceInput(json.get("dataSourceInputParameterToCallScienceApplicationCode").asText());
            dataset.setVariableNameInput(
                    json.get("variableNameInputParameterToCallScienceApplicationCode").asText());
            String startTime = json.findPath("startTime").asText();
            String endTime = json.findPath("endTime").asText();
            Date tmpTime = null;

            try {
                tmpTime = (new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a")).parse(startTime);

                if (tmpTime != null) {
                    dataset.setStartTime(new SimpleDateFormat("YYYYMM").format(tmpTime));
                }
            } catch (ParseException e) {

            }

            try {
                tmpTime = (new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a")).parse(endTime);

                if (tmpTime != null) {
                    dataset.setEndTime(new SimpleDateFormat("YYYYMM").format(tmpTime));
                }
            } catch (ParseException e) {

            }
            dataSets.add(dataset);
        }
        return dataSets;
    }

    public static List<DataSet> queryDataSet(String dataSetName, String agency, String instrument,
            String physicalVariable, String gridDimension, Date dataSetStartTime, Date dataSetEndTime) {

        List<DataSet> dataset = new ArrayList<DataSet>();
        ObjectMapper mapper = new ObjectMapper();
        ObjectNode queryJson = mapper.createObjectNode();
        queryJson.put("name", dataSetName);
        queryJson.put("agencyId", agency);
        queryJson.put("instrument", instrument);
        queryJson.put("physicalVariable", physicalVariable);
        queryJson.put("gridDimension", gridDimension);

        if (dataSetEndTime != null) {
            queryJson.put("dataSetEndTime", dataSetEndTime.getTime());
        }

        if (dataSetStartTime != null) {
            queryJson.put("dataSetStartTime", dataSetStartTime.getTime());
        }
        JsonNode dataSetNode = APICall.postAPI(DATASET_QUERY, queryJson);

        if (dataSetNode == null || dataSetNode.has("error") || !dataSetNode.isArray()) {
            return dataset;
        }

        for (int i = 0; i < dataSetNode.size(); i++) {
            JsonNode json = dataSetNode.path(i);
            DataSet newDataSet = deserializeJsonToDataSet(json);
            dataset.add(newDataSet);
        }
        return dataset;
    }

    private static DataSet deserializeJsonToDataSet(JsonNode json) {
        DataSet newDataSet = new DataSet();
        newDataSet.setId(json.get("id").asText());
        newDataSet.setDataSetName(json.get("name").asText());
        newDataSet.setAgencyId(json.get("agencyId").asText());
        newDataSet.setInstrument(json.get("instrument").get("name").asText());
        newDataSet.setPhysicalVariable(json.get("physicalVariable").asText());
        newDataSet.setCMIP5VarName(json.get("CMIP5VarName").asText());
        newDataSet.setUnits(json.get("units").asText());
        newDataSet.setGridDimension(json.get("gridDimension").asText());
        newDataSet.setSource(json.get("source").asText());
        newDataSet.setStatus(json.get("status").asText());
        newDataSet.setResponsiblePerson(json.get("responsiblePerson").asText());
        newDataSet.setDataSourceName(json.get("dataSourceNameinWebInterface").asText());
        newDataSet.setVariableName(json.get("variableNameInWebInterface").asText());
        newDataSet.setDataSourceInput(json.get("dataSourceInputParameterToCallScienceApplicationCode").asText());
        newDataSet
                .setVariableNameInput(json.get("variableNameInputParameterToCallScienceApplicationCode").asText());
        String startTime = json.findPath("startTime").asText();
        String endTime = json.findPath("endTime").asText();
        Date tmpTime = null;

        try {
            tmpTime = (new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a")).parse(startTime);

            if (tmpTime != null) {
                newDataSet.setStartTime(new SimpleDateFormat("YYYYMM").format(tmpTime));
            }
        } catch (ParseException e) {
        }

        try {
            tmpTime = (new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a")).parse(endTime);

            if (tmpTime != null) {
                newDataSet.setEndTime(new SimpleDateFormat("YYYYMM").format(tmpTime));
            }
        } catch (ParseException e) {

        }
        return newDataSet;
    }
}