ModelArchiveFactory.java [tools/MetaModelTools/src/models] Revision: f13b17137cf09777c558d6fb6a492f8e12884fb8  Date: Wed Dec 11 10:22:48 MST 2019
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package models;

import java.io.IOException;
import org.bson.Document;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

/**
 *
 * @author <a href="mailto:shaun.case@colostate.edu">Shaun Case</a>
 */
public class ModelArchiveFactory {

    public static ModelArchive getModelArchive(String serviceName, Document doc) {
        ModelArchive model = null;

        if (serviceName.contains("weps/5.2")) {
            model = new WEPSModelArchive(doc.getString("_id"),
                    doc.getString("ctime"),
                    doc.getString("etime"),
                    serviceName,
                    doc.getString("status"),
                    doc.getString("req_ip"),
                    doc.getString("filename")
            );
        } else {
            if (serviceName.contains("wepp/")) {
                model = new WEPPModelArchive(doc.getString("_id"),
                        doc.getString("ctime"),
                        doc.getString("etime"),
                        serviceName,
                        doc.getString("status"),
                        doc.getString("req_ip"),
                        doc.getString("filename")
                );
            } else {
                //Not a service we are interested in...
            }
        }

        return model;
    }

    
    public static ModelArchive getModelArchive(String serviceName, Document doc, byte[] fileData) throws IOException, JSONException {
        ModelArchive model = null;

        if (serviceName.contains("weps/5.2")) {
            model = new WEPSModelArchive(doc.getString("_id"),
                    doc.getString("ctime"),
                    doc.getString("etime"),
                    serviceName,
                    doc.getString("status"),
                    doc.getString("req_ip"),
                    doc.getString("filename"),
                    fileData
            );
        } else {
            if (serviceName.contains("wepp/")) {
                model = new WEPPModelArchive(doc.getString("_id"),
                        doc.getString("ctime"),
                        doc.getString("etime"),
                        serviceName,
                        doc.getString("status"),
                        doc.getString("req_ip"),
                        doc.getString("filename"),
                        fileData
                );
            } else {
                //Not a service we are interested in...
            }
        }

        return model;
    }
    
    public static ModelArchive getModelArchive(JSONObject metaData) throws JSONException {
        ModelArchive model = null;
        String serviceName = metaData.getString(csip.ModelDataService.KEY_SERVICE_URL);

        if (serviceName.contains("weps/5.2")) {
            model = new WEPSModelArchive(metaData);
        } else {
            if (serviceName.contains("wepp/")) {
                model = new WEPPModelArchive(metaData);
            } else {
                //Not a service we are interested in...
            }
        }

        return model;
    }
    
    public static ModelArchive getModelArchive(JSONObject metaData, byte[] fileData) throws JSONException, IOException {
        ModelArchive model = null;
        String serviceName = metaData.getString(csip.ModelDataService.KEY_SERVICE_URL);

        if (serviceName.contains("weps/5.2")) {
            model = new WEPSModelArchive(metaData, fileData);
        } else {
            if (serviceName.contains("wepp/")) {
                model = new WEPPModelArchive(metaData, fileData);
            } else {
                //Not a service we are interested in...
            }
        }

        return model;
    }    
}