Subversion Repositories bacoAlunos

Rev

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

Rev Author Line No. Line
1637 jmachado 1
package pt.estgp.estgweb.domain;
2
 
1670 jmachado 3
import com.owlike.genson.Genson;
1827 jmachado 4
import com.owlike.genson.GensonBuilder;
1670 jmachado 5
import jomm.dao.impl.AbstractDao;
1675 jmachado 6
import org.json.JSONArray;
1670 jmachado 7
import org.json.JSONException;
8
import org.json.JSONObject;
9
import pt.estgp.estgweb.domain.dao.DaoFactory;
1814 jmachado 10
import pt.estgp.estgweb.domain.typesgen.repositorydocuments.DocumentPerson;
11
import pt.estgp.estgweb.domain.typesgen.repositorydocuments.DocumentPersons;
12
import pt.estgp.estgweb.domain.typesgenservices.repositorydocuments.RepositoryFileProxy;
13
import pt.estgp.estgweb.utils.DatesWebUtils;
1670 jmachado 14
 
15
import java.io.IOException;
1637 jmachado 16
import java.io.Serializable;
1670 jmachado 17
import java.util.HashSet;
1675 jmachado 18
import java.util.List;
1637 jmachado 19
 
20
/**
21
 * Created by jorgemachado on 30/01/17.
22
 */
23
public class RepositoryDocumentImpl extends RepositoryDocument {
24
    @1.5.0/docs/api/java/lang/Override.html">Override
25
    public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable() {
26
        return getId();
27
    }
1670 jmachado 28
 
29
 
30
    public void setPublishDateStr(1.5.0/docs/api/java/lang/String.html">String date)
31
    {
1814 jmachado 32
        setPublishDate(DatesWebUtils.getDateFromString(date));
1670 jmachado 33
    }
34
 
35
    public void setCloseDateStr(1.5.0/docs/api/java/lang/String.html">String date)
36
    {
1814 jmachado 37
        setCloseDate(DatesWebUtils.getDateFromString(date));
1670 jmachado 38
    }
39
 
40
    public 1.5.0/docs/api/java/lang/String.html">String getPublishDateStr()
41
    {
42
        if(getPublishDate() != null)
1814 jmachado 43
            return DatesWebUtils.getStringFromDate(getPublishDate());
1670 jmachado 44
        return "";
45
    }
46
    public 1.5.0/docs/api/java/lang/String.html">String getCloseDateStr()
47
    {
48
        if(getCloseDate() != null)
1814 jmachado 49
            return DatesWebUtils.getStringFromDate(getCloseDate());
1670 jmachado 50
        return "";
51
    }
52
 
1827 jmachado 53
    static Genson gensonSerialize = new GensonBuilder()
1670 jmachado 54
            .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
1778 jmachado 55
            .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
56
            .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
57
            .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
58
            .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
59
            .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
1782 jmachado 60
            //.include(ArrayList.class)
1670 jmachado 61
            .include(RepositoryDocumentImpl.class)
62
            .include(DocumentPersons.class)
63
            .include(DocumentPerson.class)
64
            .include(RepositoryDocumentCollectionImpl.class)
65
            .include(RepositoryDocumentFileImpl.class)
66
            .include("authorsJson", RepositoryDocumentImpl.class)
67
            .include("contributorsJson", RepositoryDocumentImpl.class)
68
            .include("persons", DocumentPersons.class)
69
            .include("contributorsJson")
70
            .include("collection", RepositoryDocumentImpl.class)
71
            .include(1.5.0/docs/api/java/lang/String.html">String.class)
72
            .include("repositoryDocumentFiles", RepositoryDocumentImpl.class)
73
            .include(RepositoryFileProxy.class)
74
            .include(RepositoryFileImpl.class)
75
            .include(RepositoryFileVersionImpl.class)
76
            .include("repositoryFileProxy", RepositoryDocumentFileImpl.class)
77
            .include("lastVersion", RepositoryFileImpl.class)
78
            .exclude("repositoryFile", RepositoryFileVersion.class)
79
            .exclude("publishDate", RepositoryDocumentImpl.class)
80
            .exclude("closeDate", RepositoryDocumentImpl.class)
81
            //O sistema nao constroi o RepositoryFile a partir da classe
82
            //mas como guarda o stream quando serializar aparece outra vez o ficheiro
83
            .include("repositoryFile", RepositoryFileProxy.class) //DIFERENCA COM O ANTERIOR
1784 jmachado 84
            .exclude("repositoryFileVersions",RepositoryFile.class)
85
            .exclude("sourceModule",RepositoryFile.class)
1670 jmachado 86
            .create();
87
 
88
 
1827 jmachado 89
    static Genson gensonDeserialize = new GensonBuilder()
1670 jmachado 90
            .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
1782 jmachado 91
            //.include(ArrayList.class)
92
            //.include(Set.class)
93
            //.include(List.class)
1778 jmachado 94
            .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
95
            .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
96
            .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
97
            .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
98
            .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
1670 jmachado 99
            .include(RepositoryDocumentImpl.class)
100
            .include(DocumentPersons.class)
101
            .include(DocumentPerson.class)
102
            .include(RepositoryDocumentCollectionImpl.class)
103
            .include(RepositoryDocumentFileImpl.class)
104
            .include("authorsJson", RepositoryDocumentImpl.class)
105
            .include("contributorsJson", RepositoryDocumentImpl.class)
106
            .include("persons", DocumentPersons.class)
107
            .include("contributorsJson")
108
            .include("collection", RepositoryDocumentImpl.class)
109
            .include(1.5.0/docs/api/java/lang/String.html">String.class)
110
            .include("repositoryDocumentFiles", RepositoryDocumentImpl.class)
111
            .include(RepositoryFileProxy.class)
112
            .include(RepositoryFileImpl.class)
113
            .include(RepositoryFileVersionImpl.class)
114
            .include("repositoryFileProxy", RepositoryDocumentFileImpl.class)
115
            .include("lastVersion", RepositoryFileImpl.class)
116
            .exclude("repositoryFile", RepositoryFileVersion.class)
117
            .exclude("publishDate", RepositoryDocumentImpl.class)
118
            .exclude("closeDate", RepositoryDocumentImpl.class)
119
            //O sistema nao constroi o RepositoryFile a partir da classe
120
            //mas como guarda o stream quando serializar aparece outra vez o ficheiro
121
            .exclude("repositoryFile", RepositoryFileProxy.class) //DIFERENCA COM O ANTERIOR
122
            .create();
123
 
124
 
125
 
126
 
1780 jmachado 127
    public 1.5.0/docs/api/java/lang/String.html">String toJson()  {
1670 jmachado 128
        return gensonSerialize.serialize(this);
129
    }
130
 
1776 jmachado 131
    public static JSONArray toJsonArray(List<RepositoryDocumentImpl> docs) throws 1.5.0/docs/api/java/io/IOException.html">IOException, JSONException {
1675 jmachado 132
        return new JSONArray(gensonSerialize.serialize(docs));
133
    }
134
 
1776 jmachado 135
    public static RepositoryDocumentImpl loadFromJson(1.5.0/docs/api/java/lang/String.html">String json) throws 1.5.0/docs/api/java/io/IOException.html">IOException {
1670 jmachado 136
        return gensonDeserialize.deserialize(json, RepositoryDocumentImpl.class);
137
    }
138
 
1780 jmachado 139
    public JSONObject toJsonObject() throws  JSONException {
1670 jmachado 140
        return new JSONObject(toJson());
141
    }
142
 
1776 jmachado 143
    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 {
1670 jmachado 144
        AbstractDao.getCurrentSession().beginTransaction();
145
        DocumentPerson p = new DocumentPerson();
146
        p.setFirstNames("jorge");
147
        p.setLastName("Machado");
148
        DocumentPersons ps = new DocumentPersons();
149
        ps.getPersons().add(p);
150
 
151
        RepositoryDocumentCollectionImpl c = (RepositoryDocumentCollectionImpl) DaoFactory.getRepositoryDocumentCollectionDaoImpl().findAll().get(0);
152
 
153
        RepositoryDocumentImpl r = new RepositoryDocumentImpl();
154
        r.setCollection(c);
155
        r.setAuthorsJson(ps);
156
        r.setContributorsJson(ps);
157
 
158
 
159
        RepositoryDocumentFileImpl f = new RepositoryDocumentFileImpl();
160
        //f.setRepositoryStream("241");
161
        RepositoryFileProxy proxy  =new RepositoryFileProxy();
162
        proxy.setRepositoryStream("242");
163
 
164
 
165
        r.setRepositoryDocumentFiles(new HashSet<RepositoryDocumentFileImpl>());
166
        r.getRepositoryDocumentFiles().add(f);
167
 
168
        f.setRepositoryFileProxy(proxy);
169
        DaoFactory.getRepositoryDocumentFileDaoImpl().save(f);
170
        DaoFactory.getRepositoryDocumentDaoImpl().save(r);
171
        AbstractDao.getCurrentSession().getTransaction().commit();
172
 
173
 
174
        AbstractDao.getCurrentSession().beginTransaction();
175
        r = (RepositoryDocumentImpl) DaoFactory.getRepositoryDocumentDaoImpl().get(r.getId());
176
        1.5.0/docs/api/java/lang/System.html">System.out.println(r.toJson());
177
 
178
        1.5.0/docs/api/java/lang/System.html">System.out.println(RepositoryDocumentImpl.loadFromJson(r.toJson()).toJson());
179
        AbstractDao.getCurrentSession().getTransaction().commit();
180
    }
1637 jmachado 181
}