Author: adamw
Date: 2008-08-16 08:12:37 -0400 (Sat, 16 Aug 2008)
New Revision: 108
Modified:
trunk/src/main/org/jboss/envers/entity/EntityInstantiator.java
trunk/src/main/org/jboss/envers/query/RevisionProperty.java
trunk/src/main/org/jboss/envers/query/RevisionTypeProperty.java
trunk/src/main/org/jboss/envers/query/VersionsQueryCreator.java
trunk/src/main/org/jboss/envers/query/impl/AbstractVersionsQuery.java
trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java
trunk/src/main/org/jboss/envers/query/impl/RevisionsOfEntityQuery.java
trunk/src/main/org/jboss/envers/query/order/RevisionVersionsOrder.java
trunk/src/main/org/jboss/envers/query/order/VersionsOrder.java
trunk/src/main/org/jboss/envers/query/projection/DistinctVersionsProjection.java
trunk/src/main/org/jboss/envers/query/projection/ProjectionWrapper.java
trunk/src/main/org/jboss/envers/query/projection/RevisionVersionsProjection.java
trunk/src/main/org/jboss/envers/query/projection/VersionsProjection.java
trunk/src/main/org/jboss/envers/query/projection/VersionsProjectionList.java
trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java
trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java
Log:
ENVERS-37: versions configuration explicitly passed as an argument, not taken from
versions reader
Modified: trunk/src/main/org/jboss/envers/entity/EntityInstantiator.java
===================================================================
--- trunk/src/main/org/jboss/envers/entity/EntityInstantiator.java 2008-08-16 12:03:50 UTC
(rev 107)
+++ trunk/src/main/org/jboss/envers/entity/EntityInstantiator.java 2008-08-16 12:12:37 UTC
(rev 108)
@@ -34,13 +34,12 @@
* @author Adam Warski (adam at warski dot org)
*/
public class EntityInstantiator {
- private VersionsReaderImplementor versionsReader;
- private VersionsConfiguration verCfg;
+ private final VersionsConfiguration verCfg;
+ private final VersionsReaderImplementor versionsReader;
- public EntityInstantiator(VersionsReaderImplementor versionsReader) {
+ public EntityInstantiator(VersionsConfiguration verCfg, VersionsReaderImplementor
versionsReader) {
+ this.verCfg = verCfg;
this.versionsReader = versionsReader;
-
- verCfg = versionsReader.getVerCfg();
}
/**
Modified: trunk/src/main/org/jboss/envers/query/RevisionProperty.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/RevisionProperty.java 2008-08-16 12:03:50 UTC
(rev 107)
+++ trunk/src/main/org/jboss/envers/query/RevisionProperty.java 2008-08-16 12:12:37 UTC
(rev 108)
@@ -27,7 +27,7 @@
import org.jboss.envers.query.order.RevisionVersionsOrder;
import org.jboss.envers.query.projection.VersionsProjection;
import org.jboss.envers.query.projection.RevisionVersionsProjection;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
@@ -115,7 +115,7 @@
return new RevisionProperty();
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
- return
Projections.property(versionsReader.getVerCfg().getVerEntCfg().getRevisionPropPath());
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
+ return Projections.property(verCfg.getVerEntCfg().getRevisionPropPath());
}
}
Modified: trunk/src/main/org/jboss/envers/query/RevisionTypeProperty.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/RevisionTypeProperty.java 2008-08-16 12:03:50
UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/RevisionTypeProperty.java 2008-08-16 12:12:37
UTC (rev 108)
@@ -22,7 +22,7 @@
package org.jboss.envers.query;
import org.jboss.envers.query.projection.VersionsProjection;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
@@ -40,7 +40,7 @@
return new RevisionTypeProperty();
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
- return
Projections.property(versionsReader.getVerCfg().getVerEntCfg().getRevisionTypePropName());
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
+ return Projections.property(verCfg.getVerEntCfg().getRevisionTypePropName());
}
}
\ No newline at end of file
Modified: trunk/src/main/org/jboss/envers/query/VersionsQueryCreator.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/VersionsQueryCreator.java 2008-08-16 12:03:50
UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/VersionsQueryCreator.java 2008-08-16 12:12:37
UTC (rev 108)
@@ -25,14 +25,17 @@
import org.jboss.envers.query.impl.EntitiesAtRevisionQuery;
import org.jboss.envers.query.impl.RevisionsOfEntityQuery;
import static org.jboss.envers.tools.ArgumentsTools.*;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class VersionsQueryCreator {
- private VersionsReaderImplementor versionsReaderImplementor;
+ private final VersionsConfiguration verCfg;
+ private final VersionsReaderImplementor versionsReaderImplementor;
- public VersionsQueryCreator(VersionsReaderImplementor versionsReaderImplementor) {
+ public VersionsQueryCreator(VersionsConfiguration verCfg, VersionsReaderImplementor
versionsReaderImplementor) {
+ this.verCfg = verCfg;
this.versionsReaderImplementor = versionsReaderImplementor;
}
@@ -48,7 +51,7 @@
public VersionsQuery forEntitiesAtRevision(Class<?> c, Number revision) {
checkNotNull(revision, "Entity revision");
checkPositive(revision, "Entity revision");
- return new EntitiesAtRevisionQuery(versionsReaderImplementor, c, revision);
+ return new EntitiesAtRevisionQuery(verCfg, versionsReaderImplementor, c,
revision);
}
/**
@@ -67,6 +70,6 @@
* unless an order or projection is added.
*/
public VersionsQuery forRevisionsOfEntity(Class<?> c, boolean
selectEntitiesOnly, boolean selectDeletedEntities) {
- return new RevisionsOfEntityQuery(versionsReaderImplementor, c,
selectEntitiesOnly,selectDeletedEntities);
+ return new RevisionsOfEntityQuery(verCfg, versionsReaderImplementor, c,
selectEntitiesOnly,selectDeletedEntities);
}
}
Modified: trunk/src/main/org/jboss/envers/query/impl/AbstractVersionsQuery.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/impl/AbstractVersionsQuery.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/impl/AbstractVersionsQuery.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -28,6 +28,7 @@
import org.jboss.envers.query.projection.VersionsProjection;
import org.jboss.envers.query.order.VersionsOrder;
import org.jboss.envers.exception.VersionsException;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Order;
import org.hibernate.Criteria;
@@ -44,7 +45,7 @@
* @author Adam Warski (adam at warski dot org)
*/
public abstract class AbstractVersionsQuery implements VersionsQuery {
- protected VersionsReaderImplementor versionsReader;
+ //protected VersionsReaderImplementor versionsReader;
protected EntityInstantiator entityInstantiator;
protected List<VersionsCriterion> criterions;
@@ -55,14 +56,16 @@
protected boolean hasProjection;
protected boolean hasOrder;
- protected AbstractVersionsQuery(VersionsReaderImplementor versionsReader,
Class<?> cls) {
- this.versionsReader = versionsReader;
+ protected final VersionsConfiguration verCfg;
+ protected AbstractVersionsQuery(VersionsConfiguration verCfg,
VersionsReaderImplementor versionsReader, Class<?> cls) {
+ this.verCfg = verCfg;
+
criterions = new ArrayList<VersionsCriterion>();
- entityInstantiator = new EntityInstantiator(versionsReader);
+ entityInstantiator = new EntityInstantiator(verCfg, versionsReader);
entityName = cls.getName();
- versionsEntityName =
versionsReader.getVerCfg().getVerEntCfg().getVersionsEntityName(entityName);
+ versionsEntityName = verCfg.getVerEntCfg().getVersionsEntityName(entityName);
versionsCriteria = versionsReader.getSession().createCriteria(versionsEntityName,
"e");
}
@@ -101,7 +104,7 @@
public VersionsQuery setProjection(VersionsProjection projection) {
hasProjection = true;
- versionsCriteria.setProjection(projection.getProjection(entityName,
versionsReader));
+ versionsCriteria.setProjection(projection.getProjection(verCfg, entityName));
return this;
}
@@ -113,7 +116,7 @@
public VersionsQuery addOrder(VersionsOrder order) {
hasOrder = true;
- versionsCriteria.addOrder(order.getOrder(entityName, versionsReader));
+ versionsCriteria.addOrder(order.getOrder(verCfg, entityName));
return this;
}
Modified: trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/impl/EntitiesAtRevisionQuery.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -25,6 +25,7 @@
import org.jboss.envers.query.criteria.VersionsCriterion;
import org.jboss.envers.RevisionType;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.*;
import java.util.List;
@@ -36,8 +37,9 @@
public class EntitiesAtRevisionQuery extends AbstractVersionsQuery {
private Number revision;
- public EntitiesAtRevisionQuery(VersionsReaderImplementor versionsReader,
Class<?> cls, Number revision) {
- super(versionsReader, cls);
+ public EntitiesAtRevisionQuery(VersionsConfiguration verCfg,
VersionsReaderImplementor versionsReader, Class<?> cls,
+ Number revision) {
+ super(verCfg, versionsReader, cls);
this.revision = revision;
}
@@ -54,7 +56,7 @@
DetachedCriteria maxRevCriteria =
DetachedCriteria.forEntityName(versionsEntityName, "e2");
- VersionsEntitiesConfiguration verEntCfg =
versionsReader.getVerCfg().getVerEntCfg();
+ VersionsEntitiesConfiguration verEntCfg = verCfg.getVerEntCfg();
String revisionPropertyPath = verEntCfg.getRevisionPropPath();
String originalIdPropertyName = verEntCfg.getOriginalIdPropName();
@@ -64,7 +66,7 @@
// e2.revision <= :revision
maxRevCriteria.add(Restrictions.le(revisionPropertyPath, revision));
// e2.id = e.id
-
maxRevCriteria.add(versionsReader.getVerCfg().getEntCfg().getIdMapper(entityName).getIdsEqualCriterion(
+
maxRevCriteria.add(verCfg.getEntCfg().getIdMapper(entityName).getIdsEqualCriterion(
"e." + originalIdPropertyName, "e2." +
originalIdPropertyName));
// e.revision_type != DEL AND
@@ -73,7 +75,7 @@
versionsCriteria.add(Property.forName(revisionPropertyPath).eq(maxRevCriteria));
// all specified conditions, transformed
for (VersionsCriterion criterion : criterions) {
-
versionsCriteria.add(criterion.toVersionsCriterion(versionsReader.getVerCfg(),
entityName));
+ versionsCriteria.add(criterion.toVersionsCriterion(verCfg, entityName));
}
List queryResult = versionsCriteria.list();
Modified: trunk/src/main/org/jboss/envers/query/impl/RevisionsOfEntityQuery.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/impl/RevisionsOfEntityQuery.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/impl/RevisionsOfEntityQuery.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -26,6 +26,7 @@
import org.jboss.envers.query.criteria.VersionsCriterion;
import org.jboss.envers.RevisionType;
import org.jboss.envers.configuration.VersionsEntitiesConfiguration;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Property;
@@ -40,9 +41,9 @@
private final boolean selectEntitiesOnly;
private final boolean selectDeletedEntities;
- public RevisionsOfEntityQuery(VersionsReaderImplementor versionsReader,
Class<?> cls, boolean selectEntitiesOnly,
- boolean selectDeletedEntities) {
- super(versionsReader, cls);
+ public RevisionsOfEntityQuery(VersionsConfiguration verCfg, VersionsReaderImplementor
versionsReader,
+ Class<?> cls, boolean selectEntitiesOnly, boolean
selectDeletedEntities) {
+ super(verCfg, versionsReader, cls);
this.selectEntitiesOnly = selectEntitiesOnly;
this.selectDeletedEntities = selectDeletedEntities;
@@ -50,7 +51,7 @@
@SuppressWarnings({"unchecked"})
public List list() throws VersionsException {
- VersionsEntitiesConfiguration verEntCfg =
versionsReader.getVerCfg().getVerEntCfg();
+ VersionsEntitiesConfiguration verEntCfg = verCfg.getVerEntCfg();
/*
The query that should be executed in the versions table:
@@ -68,7 +69,7 @@
// all specified conditions, transformed
for (VersionsCriterion criterion : criterions) {
-
versionsCriteria.add(criterion.toVersionsCriterion(versionsReader.getVerCfg(),
entityName));
+ versionsCriteria.add(criterion.toVersionsCriterion(verCfg, entityName));
}
if (!hasProjection && !hasOrder) {
Modified: trunk/src/main/org/jboss/envers/query/order/RevisionVersionsOrder.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/order/RevisionVersionsOrder.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/order/RevisionVersionsOrder.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -22,7 +22,7 @@
package org.jboss.envers.query.order;
import org.hibernate.criterion.Order;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
@@ -34,8 +34,8 @@
this.asc = asc;
}
- public Order getOrder(String entityName, VersionsReaderImplementor versionsReader) {
- String revisionPropPath =
versionsReader.getVerCfg().getVerEntCfg().getRevisionPropPath();
+ public Order getOrder(VersionsConfiguration verCfg, String entityName) {
+ String revisionPropPath = verCfg.getVerEntCfg().getRevisionPropPath();
if (asc) {
return Order.asc(revisionPropPath);
Modified: trunk/src/main/org/jboss/envers/query/order/VersionsOrder.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/order/VersionsOrder.java 2008-08-16 12:03:50 UTC
(rev 107)
+++ trunk/src/main/org/jboss/envers/query/order/VersionsOrder.java 2008-08-16 12:12:37 UTC
(rev 108)
@@ -23,10 +23,11 @@
import org.hibernate.criterion.Order;
import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
*/
public interface VersionsOrder {
- public Order getOrder(String entityName, VersionsReaderImplementor versionsReader);
+ public Order getOrder(VersionsConfiguration verCfg, String entityName);
}
Modified:
trunk/src/main/org/jboss/envers/query/projection/DistinctVersionsProjection.java
===================================================================
---
trunk/src/main/org/jboss/envers/query/projection/DistinctVersionsProjection.java 2008-08-16
12:03:50 UTC (rev 107)
+++
trunk/src/main/org/jboss/envers/query/projection/DistinctVersionsProjection.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -23,7 +23,7 @@
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
@@ -35,7 +35,7 @@
this.projection = projection;
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
- return Projections.distinct(projection.getProjection(entityName,
versionsReader));
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
+ return Projections.distinct(projection.getProjection(verCfg, entityName));
}
}
Modified: trunk/src/main/org/jboss/envers/query/projection/ProjectionWrapper.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/projection/ProjectionWrapper.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/projection/ProjectionWrapper.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -22,7 +22,7 @@
package org.jboss.envers.query.projection;
import org.hibernate.criterion.Projection;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* Wraps a hibernate projection so that it can be used as a versions projection.
@@ -35,7 +35,7 @@
this.wrapped = wrapped;
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
return wrapped;
}
}
Modified:
trunk/src/main/org/jboss/envers/query/projection/RevisionVersionsProjection.java
===================================================================
---
trunk/src/main/org/jboss/envers/query/projection/RevisionVersionsProjection.java 2008-08-16
12:03:50 UTC (rev 107)
+++
trunk/src/main/org/jboss/envers/query/projection/RevisionVersionsProjection.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -23,7 +23,7 @@
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
/**
* @author Adam Warski (adam at warski dot org)
@@ -42,8 +42,8 @@
this.type = type;
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
- String revisionPropPath =
versionsReader.getVerCfg().getVerEntCfg().getRevisionPropPath();
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
+ String revisionPropPath = verCfg.getVerEntCfg().getRevisionPropPath();
switch (type) {
case MAX: return Projections.max(revisionPropPath);
Modified: trunk/src/main/org/jboss/envers/query/projection/VersionsProjection.java
===================================================================
--- trunk/src/main/org/jboss/envers/query/projection/VersionsProjection.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/query/projection/VersionsProjection.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -21,12 +21,12 @@
*/
package org.jboss.envers.query.projection;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
import org.hibernate.criterion.Projection;
/**
* @author Adam Warski (adam at warski dot org)
*/
public interface VersionsProjection {
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader);
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName);
}
Modified: trunk/src/main/org/jboss/envers/query/projection/VersionsProjectionList.java
===================================================================
---
trunk/src/main/org/jboss/envers/query/projection/VersionsProjectionList.java 2008-08-16
12:03:50 UTC (rev 107)
+++
trunk/src/main/org/jboss/envers/query/projection/VersionsProjectionList.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -24,7 +24,7 @@
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.ProjectionList;
-import org.jboss.envers.reader.VersionsReaderImplementor;
+import org.jboss.envers.configuration.VersionsConfiguration;
import java.util.List;
import java.util.ArrayList;
@@ -49,11 +49,11 @@
return this;
}
- public Projection getProjection(String entityName, VersionsReaderImplementor
versionsReader) {
+ public Projection getProjection(VersionsConfiguration verCfg, String entityName) {
ProjectionList list = Projections.projectionList();
for (VersionsProjection projection : projections) {
- list.add(projection.getProjection(entityName, versionsReader));
+ list.add(projection.getProjection(verCfg, entityName));
}
return list;
Modified: trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java
===================================================================
--- trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java 2008-08-16 12:03:50 UTC
(rev 107)
+++ trunk/src/main/org/jboss/envers/reader/VersionsReaderImpl.java 2008-08-16 12:12:37 UTC
(rev 108)
@@ -43,9 +43,9 @@
* @author Adam Warski (adam at warski dot org)
*/
public class VersionsReaderImpl implements VersionsReaderImplementor {
- private VersionsConfiguration verCfg;
- private SessionImplementor sessionImplementor;
- private Session session;
+ private final VersionsConfiguration verCfg;
+ private final SessionImplementor sessionImplementor;
+ private final Session session;
public VersionsReaderImpl(VersionsConfiguration verCfg, Session session,
SessionImplementor sessionImplementor) {
@@ -68,10 +68,6 @@
return session;
}
- public VersionsConfiguration getVerCfg() {
- return verCfg;
- }
-
@SuppressWarnings({"unchecked"})
public <T> T find(Class<T> cls, Object primaryKey, Number revision)
throws
IllegalArgumentException, NotVersionedException, IllegalStateException {
@@ -178,6 +174,6 @@
}
public VersionsQueryCreator createQuery() {
- return new VersionsQueryCreator(this);
+ return new VersionsQueryCreator(verCfg, this);
}
}
Modified: trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java
===================================================================
--- trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java 2008-08-16
12:03:50 UTC (rev 107)
+++ trunk/src/main/org/jboss/envers/reader/VersionsReaderImplementor.java 2008-08-16
12:12:37 UTC (rev 108)
@@ -34,6 +34,4 @@
SessionImplementor getSessionImplementor();
Session getSession();
-
- VersionsConfiguration getVerCfg();
}