/**
* Example license header for Java files
*
* http://www.andromda.org/
*/
//
// Attention: Generated code! Do not modify by hand!
// Generated by: SpringHibernateDaoBase.vsl in andromda-spring-cartridge.
//
package org.andromda.test.3;
/**
*
* Base Spring DAO Class: is able to create, update, remove, load, and find
* objects of type org.andromda.test.3.Car.
*
*
* @see org.andromda.test.3.Car
*/
public abstract class CarDaoBase
extends org.springframework.orm.hibernate.support.HibernateDaoSupport
implements org.andromda.test.3.CarDao
{
/**
* @see org.andromda.test.3.CarDao#load(int, java.lang.Long)
*/
public java.lang.Object load(final int transform, final java.lang.Long id)
{
if (id == null)
{
throw new IllegalArgumentException(
"Car.load - 'id' can not be null");
}
final java.lang.Object entity = this.getHibernateTemplate().get(org.andromda.test.3.CarImpl.class, id);
return transformEntity(transform, (org.andromda.test.3.Car)entity);
}
/**
* @see org.andromda.test.3.CarDao#load(java.lang.Long)
*/
public org.andromda.test.3.Car load(java.lang.Long id)
{
return (org.andromda.test.3.Car)this.load(TRANSFORM_NONE, id);
}
/**
* @see org.andromda.test.3.CarDao#loadAll()
*/
public java.util.Collection loadAll()
{
return this.loadAll(TRANSFORM_NONE);
}
/**
* @see org.andromda.test.3.CarDao#loadAll(int)
*/
public java.util.Collection loadAll(final int transform)
{
final java.util.Collection results = this.getHibernateTemplate().loadAll(org.andromda.test.3.CarImpl.class);
this.transformEntities(transform, results);
return results;
}
/**
* @see org.andromda.test.3.CarDao#create(org.andromda.test.3.Car)
*/
public org.andromda.test.3.Car create(org.andromda.test.3.Car car)
{
return (org.andromda.test.3.Car)this.create(TRANSFORM_NONE, car);
}
/**
* @see org.andromda.test.3.CarDao#create(int transform, org.andromda.test.3.Car)
*/
public java.lang.Object create(final int transform, final org.andromda.test.3.Car car)
{
if (car == null)
{
throw new IllegalArgumentException(
"Car.create - 'car' can not be null");
}
this.getHibernateTemplate().save(car);
return this.transformEntity(transform, car);
}
/**
* @see org.andromda.test.3.CarDao#create(java.util.Collection)
*/
public java.util.Collection create(final java.util.Collection entities)
{
return create(TRANSFORM_NONE, entities);
}
/**
* @see org.andromda.test.3.CarDao#create(int, java.util.Collection)
*/
public java.util.Collection create(final int transform, final java.util.Collection entities)
{
if (entities == null)
{
throw new IllegalArgumentException(
"Car.create - 'entities' can not be null");
}
this.getHibernateTemplate().execute(
new org.springframework.orm.hibernate.HibernateCallback()
{
public java.lang.Object doInHibernate(net.sf.hibernate.Session session)
throws net.sf.hibernate.HibernateException
{
for (java.util.Iterator entityIterator = entities.iterator(); entityIterator.hasNext();)
{
create(transform, (org.andromda.test.3.Car)entityIterator.next());
}
return null;
}
},
true);
return entities;
}
/**
* @see org.andromda.test.3.CarDao#create(java.lang.String, java.lang.String, java.lang.String)
*/
public org.andromda.test.3.Car create(
java.lang.String serial,
java.lang.String name,
java.lang.String type)
{
return (org.andromda.test.3.Car)this.create(TRANSFORM_NONE, serial, name, type);
}
/**
* @see org.andromda.test.3.CarDao#create(int, java.lang.String, java.lang.String, java.lang.String)
*/
public java.lang.Object create(
final int transform,
java.lang.String serial,
java.lang.String name,
java.lang.String type)
{
org.andromda.test.3.Car entity = new org.andromda.test.3.CarImpl();
entity.setSerial(serial);
entity.setName(name);
entity.setType(type);
return this.create(transform, entity);
}
/**
* @see org.andromda.test.3.CarDao#create(java.lang.String, org.andromda.test.3.Person, java.lang.String, java.lang.String)
*/
public org.andromda.test.3.Car create(
java.lang.String name,
org.andromda.test.3.Person owner,
java.lang.String serial,
java.lang.String type)
{
return (org.andromda.test.3.Car)this.create(TRANSFORM_NONE, name, owner, serial, type);
}
/**
* @see org.andromda.test.3.CarDao#create(int, java.lang.String, org.andromda.test.3.Person, java.lang.String, java.lang.String)
*/
public java.lang.Object create(
final int transform,
java.lang.String name,
org.andromda.test.3.Person owner,
java.lang.String serial,
java.lang.String type)
{
org.andromda.test.3.Car entity = new org.andromda.test.3.CarImpl();
entity.setName(name);
entity.setOwner(owner);
entity.setSerial(serial);
entity.setType(type);
return this.create(transform, entity);
}
/**
* @see org.andromda.test.3.CarDao#update(org.andromda.test.3.Car)
*/
public void update(org.andromda.test.3.Car car)
{
if (car == null)
{
throw new IllegalArgumentException(
"Car.update - 'car' can not be null");
}
this.getHibernateTemplate().update(car);
}
/**
* @see org.andromda.test.3.CarDao#update(java.util.Collection)
*/
public void update(final java.util.Collection entities)
{
if (entities == null)
{
throw new IllegalArgumentException(
"Car.update - 'entities' can not be null");
}
this.getHibernateTemplate().execute(
new org.springframework.orm.hibernate.HibernateCallback()
{
public java.lang.Object doInHibernate(net.sf.hibernate.Session session)
throws net.sf.hibernate.HibernateException
{
for (java.util.Iterator entityIterator = entities.iterator(); entityIterator.hasNext();)
{
update((org.andromda.test.3.Car)entityIterator.next());
}
return null;
}
},
true);
}
/**
* @see org.andromda.test.3.CarDao#remove(org.andromda.test.3.Car)
*/
public void remove(org.andromda.test.3.Car car)
{
if (car == null)
{
throw new IllegalArgumentException(
"Car.remove - 'car' can not be null");
}
this.getHibernateTemplate().delete(car);
}
/**
* @see org.andromda.test.3.CarDao#remove(java.lang.Long)
*/
public void remove(java.lang.Long id)
{
if (id == null)
{
throw new IllegalArgumentException(
"Car.remove - 'id' can not be null");
}
org.andromda.test.3.Car entity = this.load(id);
if (entity != null)
{
this.remove(entity);
}
}
/**
* @see org.andromda.test.3.CarDao#remove(java.util.Collection)
*/
public void remove(java.util.Collection entities)
{
if (entities == null)
{
throw new IllegalArgumentException(
"Car.remove - 'entities' can not be null");
}
this.getHibernateTemplate().deleteAll(entities);
}
/**
* @see org.andromda.test.3.CarDao#allCarsAreRented()
*/
public boolean allCarsAreRented()
{
try
{
return this.handleAllCarsAreRented();
}
catch (Throwable th)
{
throw new java.lang.RuntimeException(
"Error performing 'org.andromda.test.3.CarDao.allCarsAreRented()' --> " + th,
th);
}
}
/**
* Performs the core logic for {@link #allCarsAreRented()}
*/
protected abstract boolean handleAllCarsAreRented()
throws java.lang.Exception;
/**
* Allows transformation of entities into value objects
* (or something else for that matter), when the transform
* flag is set to one of the constants defined in org.andromda.test.3.CarDao, please note
* that the {@link #TRANSFORM_NONE} constant denotes no transformation, so the entity itself
* will be returned.
*
* If the integer argument value is unknown {@link #TRANSFORM_NONE} is assumed.
*
* @param transform one of the constants declared in {@link org.andromda.test.3.CarDao}
* @param entity an entity that was found
* @return the transformed entity (i.e. new value object, etc)
* @see #transformEntities(int,java.util.Collection)
*/
protected java.lang.Object transformEntity(final int transform, final org.andromda.test.3.Car entity)
{
java.lang.Object target = null;
if (entity != null)
{
switch (transform)
{
case TRANSFORM_NONE : // fall-through
default:
target = entity;
}
}
return target;
}
/**
* Transforms a collection of entities using the
* {@link #transformEntity(int,org.andromda.test.3.Car)}
* method. This method does not instantiate a new collection.
*
* This method is to be used internally only.
*
* @param transform one of the constants declared in org.andromda.test.3.CarDao
* @param entities the collection of entities to transform
* @see #transformEntity(int,org.andromda.test.3.Car)
*/
protected void transformEntities(final int transform, final java.util.Collection entities)
{
switch (transform)
{
case TRANSFORM_NONE : // fall-through
default:
// do nothing;
}
}
}