// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataprofiler.core.migration.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.talend.dataprofiler.core.migration.AbstractWorksapceUpdateTask;
import org.talend.dataquality.reports.TdReport;
import org.talend.dq.helper.ContextHelper;
import org.talend.dq.helper.resourcehelper.RepResourceFileHelper;
import org.talend.dq.writer.impl.ElementWriterFactory;
import orgomg.cwm.objectmodel.core.ModelElement;
/**
* TDQ-7418 msjian: update the dateFrom and dateEnd type from Date to String.
* e.g: from dateFrom="2004-06-12T00:00:00.000+0800" to dateFrom="06/12/2004".
*/
public class UpdateReportBeginEndDateTask extends AbstractWorksapceUpdateTask {
public Date getOrder() {
return createDate(2014, 7, 7);
}
public MigrationTaskType getMigrationTaskType() {
return MigrationTaskType.FILE;
}
@Override
protected boolean doExecute() throws Exception {
List<? extends ModelElement> allElement = RepResourceFileHelper.getInstance().getAllElement();
for (ModelElement me : allElement) {
if (me instanceof TdReport) {
TdReport tdReport = (TdReport) me;
boolean isChanged = false;
// dateFrom
String oldDateFromStr = tdReport.getDateFrom();
if (oldDateFromStr!= null ) {
if (!ContextHelper.isContextVar(oldDateFromStr)) {
if (oldDateFromStr.length() > 10) {
// like: 2004-06-12T00:00:00.000+0800 --> 06/12/2004
Date oldDateFromDate = new SimpleDateFormat("yyyy-MM-dd").parse(oldDateFromStr);
tdReport.setDateFrom(new SimpleDateFormat("MM/dd/yyyy").format(oldDateFromDate));
isChanged = true;
}
}
}
// dateTo
String oldDateToStr = tdReport.getDateTo();
if (oldDateToStr!= null ) {
if (!ContextHelper.isContextVar(oldDateToStr)) {
if (oldDateToStr.length() > 10) {
// like: 2004-06-12T00:00:00.000+0800 --> 06/12/2004
Date oldDateToDate = new SimpleDateFormat("yyyy-MM-dd").parse(oldDateToStr);
tdReport.setDateTo(new SimpleDateFormat("MM/dd/yyyy").format(oldDateToDate));
isChanged = true;
}
}
}
if (isChanged) {
ElementWriterFactory.getInstance().createReportWriter().save(me);
}
}
}
return true;
}
}