Subversion Repositories bacoAlunos

Rev

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

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