All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.minimalj.transaction.persistence.ReadHistoryTransaction Maven / Gradle / Ivy

Go to download

A java framework aiming for a minimal programming style. Includes GUI and persistence layer.

There is a newer version: 2.5.0.0
Show newest version
package org.minimalj.transaction.persistence;

import java.util.List;

import org.minimalj.backend.Persistence;
import org.minimalj.backend.sql.SqlPersistence;
import org.minimalj.transaction.PersistenceTransaction;
import org.minimalj.util.IdUtils;

public class ReadHistoryTransaction implements PersistenceTransaction> {
	private static final long serialVersionUID = 1L;

	private final Class clazz;
	private final Object id;
	private final int maxResults;

	@SuppressWarnings("unchecked")
	public ReadHistoryTransaction(T object) {
		this.clazz = (Class) object.getClass();
		this.id = IdUtils.getId(object);
		this.maxResults = Integer.MAX_VALUE;
	}
	
	public ReadHistoryTransaction(Class clazz, Object id) {
		this(clazz, id, Integer.MAX_VALUE);
	}
	
	public ReadHistoryTransaction(Class clazz, Object id, int maxResults) {
		this.clazz = clazz;
		this.id = id;
		this.maxResults = maxResults;
	}
	
	@Override
	public Class getEntityClazz() {
		return clazz;
	}

	@Override
	public List execute(Persistence persistence) {
		if (persistence instanceof SqlPersistence) {
			SqlPersistence sqlPersistence = (SqlPersistence) persistence;
			List	result = sqlPersistence.loadHistory(clazz, id, maxResults);
			return result;
		} else {
			throw new IllegalStateException(getClass().getSimpleName() + " works only with " + SqlPersistence.class.getSimpleName());
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy