Subversion Repositories bacoAlunos

Rev

Rev 1675 | Rev 1778 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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