org.jumpmind.symmetric.extract.DataExtractorContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of symmetric-ds Show documentation
Show all versions of symmetric-ds Show documentation
SymmetricDS is an open source database synchronization solution. It is platform-independent,
web-enabled, and database-agnostic. SymmetricDS was first built to replicate changes between 'retail store'
databases and ad centralized 'corporate' database.
The newest version!
/*
* Licensed to JumpMind Inc under one or more contributor
* license agreements. See the NOTICE file distributed
* with this work for additional information regarding
* copyright ownership. JumpMind Inc licenses this file
* to you under the GNU Lesser General Public License (the
* "License"); you may not use this file except in compliance
* with the License.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see
* .
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.jumpmind.symmetric.extract;
import java.util.ArrayList;
import java.util.List;
import org.jumpmind.symmetric.model.OutgoingBatch;
/**
* Holds the current state of a data extraction
*/
public class DataExtractorContext implements Cloneable {
private List auditRecordsWritten = new ArrayList();
private String lastTriggerHistoryId;
private String lastRouterId;
private OutgoingBatch batch;
private IDataExtractor dataExtractor;
public DataExtractorContext copy(IDataExtractor extractor) {
this.dataExtractor = extractor;
DataExtractorContext newVersion;
try {
newVersion = (DataExtractorContext) super.clone();
newVersion.auditRecordsWritten = new ArrayList();
return newVersion;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public List getHistoryRecordsWritten() {
return auditRecordsWritten;
}
public void setLastTriggerHistoryId(String tableName) {
lastTriggerHistoryId = tableName;
}
public void setLastRouterId(String lastRouterId) {
this.lastRouterId = lastRouterId;
}
public boolean isLastDataFromSameTriggerAndRouter(String currentTriggerHistoryId, String currentRouterId) {
return lastTriggerHistoryId != null && lastTriggerHistoryId.equals(currentTriggerHistoryId) && lastRouterId != null && lastRouterId.equals(currentRouterId);
}
public OutgoingBatch getBatch() {
return batch;
}
public void setBatch(OutgoingBatch batch) {
this.batch = batch;
}
public IDataExtractor getDataExtractor() {
return dataExtractor;
}
public void incrementDataEventCount() {
if (batch != null) {
batch.incrementDataEventCount();
}
}
public void incrementByteCount(int size) {
if (batch != null) {
batch.incrementByteCount(size);
}
}
}