/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.jbpm.runtime.manager.impl.migration;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Represents complete (might be unfinished in case of an error)
* process instance migration. It contains all migration entries
* that correspond to individual operations performed during migration.
*
*/
public class MigrationReport implements Serializable {
private static final Logger logger = LoggerFactory.getLogger(MigrationReport.class);
private static final long serialVersionUID = -5992169359542031146L;
private MigrationSpec migrationSpec;
private boolean successful;
private Date startDate;
private Date endDate;
private List<MigrationEntry> entries = new ArrayList<MigrationEntry>();
public MigrationReport(MigrationSpec migrationSpec) {
this.migrationSpec = migrationSpec;
this.startDate = new Date();
}
public MigrationSpec getMigrationSpec() {
return migrationSpec;
}
public void setMigrationSpec(MigrationSpec processData) {
this.migrationSpec = processData;
}
public boolean isSuccessful() {
return successful;
}
public void setSuccessful(boolean successful) {
this.successful = successful;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public List<MigrationEntry> getEntries() {
return entries;
}
public void setEntries(List<MigrationEntry> entries) {
this.entries = entries;
}
public void addEntry(MigrationEntry.Type type, String message) throws MigrationException {
this.entries.add(new MigrationEntry(type, message));
switch (type) {
case INFO:
logger.debug(message);
break;
case WARN:
logger.warn(message);
break;
case ERROR:
logger.error(message);
this.setSuccessful(false);
setEndDate(new Date());
throw new MigrationException(message, this);
default:
break;
}
}
}