35 |
35 |
import java.sql.SQLException;
|
36 |
36 |
import java.util.*;
|
37 |
37 |
import java.text.DateFormat;
|
|
38 |
import java.text.SimpleDateFormat;
|
38 |
39 |
|
39 |
40 |
import javax.servlet.ServletContext;
|
40 |
41 |
import javax.servlet.http.HttpServletRequest;
|
... | ... | |
97 |
98 |
private Logger logCrud = null;
|
98 |
99 |
|
99 |
100 |
private String metacatUrl;
|
|
101 |
|
|
102 |
private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
|
100 |
103 |
|
101 |
104 |
/**
|
102 |
105 |
* singleton accessor
|
... | ... | |
493 |
496 |
}
|
494 |
497 |
|
495 |
498 |
String dateSMM = d.getField("dateSysMetadataModified");
|
496 |
|
//System.out.println("docid: " + d.docid + " dateSMM: " + dateSMM);
|
497 |
499 |
if((startTime != null || endTime != null) && dateSMM == null)
|
498 |
500 |
{ //if startTime or endTime are not null, we need a date to compare to
|
499 |
501 |
continue;
|
... | ... | |
503 |
505 |
Date dateSysMetadataModified = null;
|
504 |
506 |
if(dateSMM != null)
|
505 |
507 |
{
|
506 |
|
dateSysMetadataModified = parseDate(dateSMM);
|
|
508 |
//dateSysMetadataModified = parseDate(dateSMM);
|
|
509 |
if(dateSMM.indexOf(".") != -1)
|
|
510 |
{ //strip the milliseconds
|
|
511 |
dateSMM = dateSMM.substring(0, dateSMM.indexOf(".")) + 'Z';
|
|
512 |
}
|
|
513 |
//System.out.println("dateSMM: " + dateSMM);
|
|
514 |
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT-0"));
|
|
515 |
dateSysMetadataModified = dateFormat.parse(dateSMM);
|
|
516 |
//System.out.println("dateSysMetadataModified: " + dateSysMetadataModified);
|
|
517 |
|
|
518 |
//dateSysMetadataModified = getDateInTimeZone(dateSysMetadataModified, TimeZone.getDefault().getID());
|
|
519 |
//System.out.println("dateSysMetadataModified after convertion to default timezone: " + dateSysMetadataModified);
|
507 |
520 |
}
|
508 |
|
//System.out.println("dateSysMetadataModified: " + dateSysMetadataModified);
|
509 |
|
//System.out.println("startTime: " + startTime);
|
510 |
|
//System.out.println("endtime: " + endTime);
|
|
521 |
/*System.out.println("docid: " + d.docid);
|
|
522 |
System.out.println("dateSysMetadataModified: " + dateSysMetadataModified);
|
|
523 |
System.out.println("startTime: " + startTime);
|
|
524 |
System.out.println("endtime: " + endTime);*/
|
511 |
525 |
int startDateComparison = 0;
|
512 |
526 |
int endDateComparison = 0;
|
513 |
527 |
if(startTime != null)
|
... | ... | |
555 |
569 |
|
556 |
570 |
docs = docCopy;
|
557 |
571 |
totalAfterQuery = docs.size();
|
558 |
|
//System.out.println("total after subquery: " + totalAfterQuery);
|
|
572 |
System.out.println("total after subquery: " + totalAfterQuery);
|
559 |
573 |
|
560 |
574 |
//make sure we don't run over the end
|
561 |
575 |
int end = start + count;
|
... | ... | |
628 |
642 |
ol.setCount(count);
|
629 |
643 |
ol.setStart(start);
|
630 |
644 |
ol.setTotal(totalAfterQuery);
|
|
645 |
System.out.println("returning " + ol.sizeObjectInfoList() + " items in the object list");
|
631 |
646 |
return ol;
|
632 |
647 |
}
|
633 |
648 |
|
... | ... | |
1186 |
1201 |
|
1187 |
1202 |
return newFile;
|
1188 |
1203 |
}
|
|
1204 |
|
|
1205 |
private static Date getDateInTimeZone(Date currentDate, String timeZoneId)
|
|
1206 |
{
|
|
1207 |
TimeZone tz = TimeZone.getTimeZone(timeZoneId);
|
|
1208 |
Calendar mbCal = new GregorianCalendar(TimeZone.getTimeZone(timeZoneId));
|
|
1209 |
mbCal.setTimeInMillis(currentDate.getTime());
|
1189 |
1210 |
|
|
1211 |
Calendar cal = Calendar.getInstance();
|
|
1212 |
cal.set(Calendar.YEAR, mbCal.get(Calendar.YEAR));
|
|
1213 |
cal.set(Calendar.MONTH, mbCal.get(Calendar.MONTH));
|
|
1214 |
cal.set(Calendar.DAY_OF_MONTH, mbCal.get(Calendar.DAY_OF_MONTH));
|
|
1215 |
cal.set(Calendar.HOUR_OF_DAY, mbCal.get(Calendar.HOUR_OF_DAY));
|
|
1216 |
cal.set(Calendar.MINUTE, mbCal.get(Calendar.MINUTE));
|
|
1217 |
cal.set(Calendar.SECOND, mbCal.get(Calendar.SECOND));
|
|
1218 |
cal.set(Calendar.MILLISECOND, mbCal.get(Calendar.MILLISECOND));
|
|
1219 |
|
|
1220 |
return cal.getTime();
|
|
1221 |
}
|
|
1222 |
|
1190 |
1223 |
/**
|
1191 |
1224 |
* insert a systemMetadata doc
|
1192 |
1225 |
*/
|
... | ... | |
1199 |
1232 |
Identifier sysMetaGuid = new Identifier();
|
1200 |
1233 |
sysMetaGuid.setValue(DocumentUtil.generateDocumentId(1));
|
1201 |
1234 |
sysmeta.setDateSysMetadataModified(new Date());
|
|
1235 |
System.out.println("****inserting new system metadata with modified date " + sysmeta.getDateSysMetadataModified());
|
1202 |
1236 |
|
1203 |
1237 |
String xml = new String(serializeSystemMetadata(sysmeta).toByteArray());
|
1204 |
1238 |
String localId = insertDocument(xml, sysMetaGuid, sessionData);
|
|
1239 |
System.out.println("sysmeta inserted with localId " + localId);
|
1205 |
1240 |
//insert the system metadata doc id into the identifiers table to
|
1206 |
1241 |
//link it to the data or metadata document
|
1207 |
1242 |
IdentifierManager.getInstance().createSystemMetadataMapping(
|
... | ... | |
1434 |
1469 |
String year = date.substring(0, 4);
|
1435 |
1470 |
String month = date.substring(5, 7);
|
1436 |
1471 |
String day = date.substring(8, 10);
|
1437 |
|
Calendar c = Calendar.getInstance();
|
|
1472 |
Calendar c = Calendar.getInstance(TimeZone.getDefault());
|
1438 |
1473 |
c.set(new Integer(year).intValue(),
|
1439 |
1474 |
new Integer(month).intValue(),
|
1440 |
1475 |
new Integer(day).intValue());
|
|
1476 |
System.out.println("time in parseMetacatDate: " + c.getTime());
|
1441 |
1477 |
return c.getTime();
|
1442 |
1478 |
}
|
1443 |
1479 |
|
fixing date formatting and timezone issues