// ============================================================================
//
// 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.migration;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import org.apache.log4j.Logger;
/**
* DOC bZhou class global comment. Detailled comment
*/
public abstract class AMigrationTask implements IMigrationTask {
private static Logger log = Logger.getLogger(AMigrationTask.class);
private String id;
private String name;
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.migration.IMigrationTask#getId()
*/
@Override
public String getId() {
return id;
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.migration.IMigrationTask#getName()
*/
@Override
public String getName() {
return name;
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.migration.IMigrationTask#setId(java.lang.String)
*/
@Override
public void setId(String id) {
this.id = id;
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.migration.IMigrationTask#setName(java.lang.String)
*/
@Override
public void setName(String name) {
this.name = name;
}
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.migration.IMigrationTask#execute()
*/
@Override
public final boolean execute() {
try {
return doExecute() && persist();
} catch (Exception e) {
log.error(e, e);
} finally {
clear();
}
return false;
}
/**
* DOC bZhou Comment method "createDate".
*
* @param year
* @param month
* @param day
* @return
*/
protected Date createDate(int year, int month, int day) {
Calendar calender = Calendar.getInstance();
calender.set(year, month, day);
return calender.getTime();
}
/**
* DOC bZhou Comment method "doExecute".
*
* @return TODO
*
* @throws Exception TODO
* @throws SQLException
*/
protected abstract boolean doExecute() throws Exception;
@Override
public Boolean isModelTask() {
return "org.talend.dataprofiler.core.migration.impl.MergeMetadataTask".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.ExchangeFileNameToReferenceTask".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.UpdatePropertiesFileTask".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.UpdateAnalysisWithMinLengthIndicator".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.RefactMdmMetadataTask".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.UpdateFileAfterMergeConnectionTask".equals(getId())//$NON-NLS-1$
|| "update the value of path on the property files".equals(getId())//$NON-NLS-1$
|| "org.talend.dataprofiler.core.changeBinFrequanceUUID".equals(getId()) //$NON-NLS-1$
|| "org.talend.dataprofiler.core.tdq.migration.UpdateReportUserDefinedJrxmlFilePathTask".equals(getId()) //$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.UpdateAggrDefinitionTask".equals(getId()) //$NON-NLS-1$
|| "org.talend.dataprofiler.core.migration.impl.UpdateMeanAggrDefinitionTask".equals(getId()); //$NON-NLS-1$
}
}