@@ -63,26 +63,17 @@ protected BulkUpload createOrRetrieveBulkUpload(Account account, BulkUploadAutoU
63
63
EntryType addType ) {
64
64
BulkUpload draft = dao .get (autoUpdate .getBulkUploadId ());
65
65
if (draft == null ) {
66
- draft = new BulkUpload ();
67
- draft .setAccount (account );
68
- draft .setStatus (BulkUploadStatus .IN_PROGRESS );
69
- draft .setImportType (addType .toString ());
70
- draft .setCreationTime (new Date (System .currentTimeMillis ()));
71
- draft .setLastUpdateTime (draft .getCreationTime ());
72
- dao .create (draft );
66
+ long id = createBulkUpload (account .getEmail (), addType );
67
+ draft = dao .get (id );
73
68
}
74
69
return draft ;
75
70
}
76
71
77
72
public long createBulkUpload (String userId , EntryType entryType ) {
78
- BulkUpload draft = new BulkUpload ();
79
- Account account = accountController .getByEmail (userId );
80
- draft .setAccount (account );
81
- draft .setStatus (BulkUploadStatus .IN_PROGRESS );
82
- draft .setImportType (entryType .toString ());
83
- draft .setCreationTime (new Date ());
84
- draft .setLastUpdateTime (draft .getCreationTime ());
85
- return dao .create (draft ).getId ();
73
+ BulkUploadInfo info = new BulkUploadInfo ();
74
+ info .setStatus (BulkUploadStatus .IN_PROGRESS );
75
+ info .setType (entryType .getName ());
76
+ return controller .create (userId , info ).getId ();
86
77
}
87
78
88
79
public PartData createEntry (String userId , long bulkUploadId , PartData data ) {
@@ -93,6 +84,9 @@ public PartData createEntry(String userId, long bulkUploadId, PartData data) {
93
84
94
85
protected PartData createEntryForUpload (String userId , PartData data , BulkUpload upload ) {
95
86
Entry entry = InfoToModelFactory .infoToEntry (data );
87
+ if (entry == null )
88
+ return null ;
89
+
96
90
entry .setVisibility (Visibility .DRAFT .getValue ());
97
91
Account account = accountController .getByEmail (userId );
98
92
entry .setOwner (account .getFullName ());
@@ -103,18 +97,20 @@ protected PartData createEntryForUpload(String userId, PartData data, BulkUpload
103
97
// create linked
104
98
PartData linked = data .getLinkedParts ().get (0 );
105
99
Entry linkedEntry = InfoToModelFactory .infoToEntry (linked );
106
- linkedEntry .setVisibility (Visibility .DRAFT .getValue ());
107
- linkedEntry .setOwner (account .getFullName ());
108
- linkedEntry .setOwnerEmail (account .getEmail ());
109
- linkedEntry = entryDAO .create (linkedEntry );
100
+ if (linkedEntry != null ) {
101
+ linkedEntry .setVisibility (Visibility .DRAFT .getValue ());
102
+ linkedEntry .setOwner (account .getFullName ());
103
+ linkedEntry .setOwnerEmail (account .getEmail ());
104
+ linkedEntry = entryDAO .create (linkedEntry );
110
105
111
- linked .setId (linkedEntry .getId ());
112
- linked .setModificationTime (linkedEntry .getModificationTime ().getTime ());
113
- data .getLinkedParts ().clear ();
114
- data .getLinkedParts ().add (linked );
106
+ linked .setId (linkedEntry .getId ());
107
+ linked .setModificationTime (linkedEntry .getModificationTime ().getTime ());
108
+ data .getLinkedParts ().clear ();
109
+ data .getLinkedParts ().add (linked );
115
110
116
- // link to main entry in the database
117
- entry .getLinkedEntries ().add (linkedEntry );
111
+ // link to main entry in the database
112
+ entry .getLinkedEntries ().add (linkedEntry );
113
+ }
118
114
}
119
115
120
116
entry = entryDAO .create (entry );
@@ -147,9 +143,11 @@ protected PartData doUpdate(String userId, Entry entry, PartData data) {
147
143
return null ;
148
144
149
145
entry = InfoToModelFactory .updateEntryField (data , entry );
146
+ if (entry == null )
147
+ return null ;
148
+
150
149
entry .setModificationTime (new Date ());
151
150
entry = entryDAO .update (entry );
152
-
153
151
data .setModificationTime (entry .getModificationTime ().getTime ());
154
152
155
153
// check if there is any linked parts. update if so (expect a max of 1)
@@ -159,8 +157,7 @@ protected PartData doUpdate(String userId, Entry entry, PartData data) {
159
157
// retrieve the entry (this is the only time you can create another entry on update)
160
158
PartData linkedPartData = data .getLinkedParts ().get (0 ); // bulk upload can only link 1
161
159
Entry linkedEntry = entryDAO .get (linkedPartData .getId ());
162
- if (linkedEntry == null ) {
163
- linkedEntry = InfoToModelFactory .infoToEntry (linkedPartData );
160
+ if (linkedEntry == null && (linkedEntry = InfoToModelFactory .infoToEntry (linkedPartData )) != null ) {
164
161
linkedEntry .setVisibility (Visibility .DRAFT .getValue ());
165
162
Account account = accountController .getByEmail (userId );
166
163
linkedEntry .setOwner (account .getFullName ());
@@ -385,6 +382,9 @@ public boolean createEntries(String userId, long draftId, List<PartData> data, H
385
382
continue ;
386
383
387
384
Entry entry = InfoToModelFactory .infoToEntry (datum );
385
+ if (entry == null )
386
+ continue ;
387
+
388
388
entry .setVisibility (Visibility .DRAFT .getValue ());
389
389
Account account = accountController .getByEmail (userId );
390
390
entry .setOwner (account .getFullName ());
@@ -395,19 +395,21 @@ public boolean createEntries(String userId, long draftId, List<PartData> data, H
395
395
// create linked
396
396
PartData linked = datum .getLinkedParts ().get (0 );
397
397
Entry linkedEntry = InfoToModelFactory .infoToEntry (linked );
398
- linkedEntry .setVisibility (Visibility .DRAFT .getValue ());
399
- linkedEntry .setOwner (account .getFullName ());
400
- linkedEntry .setOwnerEmail (account .getEmail ());
401
- linkedEntry = entryDAO .create (linkedEntry );
398
+ if (linkedEntry != null ) {
399
+ linkedEntry .setVisibility (Visibility .DRAFT .getValue ());
400
+ linkedEntry .setOwner (account .getFullName ());
401
+ linkedEntry .setOwnerEmail (account .getEmail ());
402
+ linkedEntry = entryDAO .create (linkedEntry );
402
403
403
- linked .setId (linkedEntry .getId ());
404
- linked .setModificationTime (linkedEntry .getModificationTime ().getTime ());
404
+ linked .setId (linkedEntry .getId ());
405
+ linked .setModificationTime (linkedEntry .getModificationTime ().getTime ());
405
406
406
- // check for attachments and sequences for linked entry
407
- saveFiles (userId , linked , linkedEntry , files );
407
+ // check for attachments and sequences for linked entry
408
+ saveFiles (linked , linkedEntry , files );
408
409
409
- // link to main entry in the database
410
- entry .getLinkedEntries ().add (linkedEntry );
410
+ // link to main entry in the database
411
+ entry .getLinkedEntries ().add (linkedEntry );
412
+ }
411
413
}
412
414
413
415
entry = entryDAO .create (entry );
@@ -416,13 +418,13 @@ public boolean createEntries(String userId, long draftId, List<PartData> data, H
416
418
dao .update (draft );
417
419
418
420
// save files
419
- saveFiles (userId , datum , entry , files );
421
+ saveFiles (datum , entry , files );
420
422
}
421
423
422
424
return true ;
423
425
}
424
426
425
- protected void saveFiles (String userId , PartData data , Entry entry , HashMap <String , InputStream > files ) {
427
+ protected void saveFiles (PartData data , Entry entry , HashMap <String , InputStream > files ) {
426
428
// check sequence
427
429
try {
428
430
String sequenceName = data .getSequenceFileName ();
0 commit comments