/*
* Created on Dec 6, 2005
*/
package com.processpuzzle.persistence.domain;
import com.processpuzzle.application.configuration.domain.ProcessPuzzleContext;
import com.processpuzzle.commons.persistence.PersistenceStrategy;
import com.processpuzzle.commons.persistence.RepositoryResultSet;
import com.processpuzzle.persistence.query.domain.ComparisonOperators;
import com.processpuzzle.persistence.query.domain.DefaultQuery;
import com.processpuzzle.persistence.query.domain.TextAttributeCondition;
/**
* @author zsolt.zsuffa
*/
public class TestEntityRepository extends GenericRepository<TestEntity> {
// Constructors
public TestEntityRepository( PersistenceStrategy strategy, ProcessPuzzleContext applicationContext ) {
super( strategy, applicationContext );
}
// Public accessors
public TestEntity findTestEntityByName( String name ) {
DefaultUnitOfWork work = new DefaultUnitOfWork( true );
TestEntity returnValue = this.findTestEntityByName( work, name );
work.finish();
return returnValue;
}
public TestEntity findTestEntityByName( DefaultUnitOfWork work, String name ) {
// return (TestEntity) super.findByQuery("from TestEntity d where d.name = ${name}", new Object[] { "name", name });
DefaultQuery query = new DefaultQuery( TestEntity.class );
query.getQueryCondition().addAttributeCondition( new TextAttributeCondition( "name", name, ComparisonOperators.EQUAL_TO ) );
RepositoryResultSet<TestEntity> result = findByQuery( work, query );
if( result.size() == 1 )
return result.getEntityAt( 0 );
else
return null;
}
public TestEntitySubclass findSubClassById( DefaultUnitOfWork work, Integer id ) {
return (TestEntitySubclass) findById( work, TestEntitySubclass.class, id );
}
// Public mutators
public void deleteByName( DefaultUnitOfWork work, String name ) {
delete( work, findTestEntityByName( work, name ) );
}
public void addChildEntity( DefaultUnitOfWork work, TestEntitySubclass child ) {
add( work, TestEntitySubclass.class, child );
}
// Private, proted helper methods
protected void setSupportedAggregateRootClass() {
supportedAggregateRootClass = TestEntity.class;
}
protected Object findByIdentityExpression( String identityExpression ) {
return null;
}
// TestEntityComponent
// public TestEntityComponent findTestEntityComponentById(Integer id) {
// return (TestEntityComponent) findById( TestEntity.class, id );
// }
//
// public TestEntityComponent findTestEntityComponentByName(String name) {
// return (TestEntityComponent) findByQuery("from TestEntityComponent d where d.name = ${name}", new Object[] { "name", name });
// }
//
//
// public void addEntityComponent(TestEntityComponent testEntityComponent) {
// add(TestEntityComponent.class, testEntityComponent);
// }
//
// public void updateTestEntityComponent(TestEntityComponent testEntityComponent) {
// update(TestEntityComponent.class, testEntityComponent);
// }
//
// public void deleteTestEntityComponent(TestEntityComponent testEntityComponent) {
// delete(TestEntityComponent.class, testEntityComponent);
// }
//
// public void deleteTestEntityComponent(String name) {
// deleteTestEntityComponent(findTestEntityComponentByName(name));
// }
}