Subversion Repositories bacoAlunos

Rev

Rev 1781 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain;

import com.owlike.genson.Genson;
import com.owlike.genson.GensonBuilder;
import com.owlike.genson.reflect.VisibilityFilter;
import jomm.dao.impl.AbstractDao;
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.estgweb.domain.dao.DaoFactory;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * Created by jorgemachado on 03/02/17.
 */

public class BpmnProcessImpl extends BpmnProcess
{
    static Genson genson = new GensonBuilder()
            .useClassMetadata(true)
            .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
            .useFields(false, VisibilityFilter.NONE)
            .useDateAsTimestamp(true)

            .useRuntimeType(true)
            //.useMethods(true)
            .include(1.5.0/docs/api/java/util/ArrayList.html">ArrayList.class)
            .include(1.5.0/docs/api/java/util/Set.html">Set.class)
            .include(5+0%2Fdocs%2Fapi+List">List.class)
            .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
            .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
            .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
            .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
            .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
            .include(5+0%2Fdocs%2Fapi+Date">Date.class)
            .include(BpmnProcess.class)
            .include(BpmnFlowConnectorImpl.class)
            //.include(BpmnFlowConnector.class)

            .include(BpmnFlowComponent.class)
            .include(BpmnActorPool.class)
            .include(BpmnAbstractActorSelector.class)
            .include(BpmnVariable.class)
            .include(1.5.0/docs/api/java/lang/String.html">String.class)


            .exclude("process", BpmnActorPool.class)
            .exclude("actorPool", BpmnFlowComponent.class)
            .include("flowComponentId", BpmnFlowConnectorImpl.class)
            .exclude("flowComponent", BpmnFlowConnector.class)


            //.include("flowComponentsArray")
            .create();



    public JSONObject toJsonObject() throws JSONException
    {
        return new JSONObject(genson.serialize(this));
    }

    public 1.5.0/docs/api/java/lang/String.html">String toJson()  {
        return genson.serialize(this);
    }

    public static 1.5.0/docs/api/java/lang/String.html">String toJsonArray(ArrayList<BpmnProcess> processes)
    {
        return genson.serialize(processes);
    }

    public static BpmnProcessImpl fromJson(1.5.0/docs/api/java/lang/String.html">String processJson) {
        return genson.deserialize(processJson,BpmnProcessImpl.class);
    }

    //TESTES
    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args) throws 1.5.0/docs/api/java/io/IOException.html">IOException {

        AbstractDao.getCurrentSession().beginTransaction();
        BpmnProcess process = DaoFactory.getBpmnProcessDaoImpl().get(new 1.5.0/docs/api/java/lang/Long.html">Long(1));
        1.5.0/docs/api/java/lang/System.html">System.out.println(process.toJson());

        BpmnFlowComponentTaskActorImpl a = (BpmnFlowComponentTaskActorImpl) DaoFactory.getBpmnFlowComponentTaskActorDaoImpl().findAll().get(0);
        1.5.0/docs/api/java/lang/System.html">System.out.println(a.toJson());
        AbstractDao.getCurrentSession().getTransaction().commit();

    }
}