com.caucho.amber.entity.Entity Maven / Gradle / Ivy
/*
* Copyright (c) 1998-2018 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Resin Open Source is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
* of NON-INFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*
* Free Software Foundation, Inc.
* 59 Temple Place, Suite 330
* Boston, MA 02111-1307 USA
*
* @author Scott Ferguson
*/
package com.caucho.amber.entity;
import com.caucho.amber.manager.AmberConnection;
import com.caucho.amber.type.EntityType;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* An entity instance
*/
public interface Entity extends MappedSuperclass
{
/**
* Makes the entity persistent.
*/
public boolean __caucho_makePersistent(AmberConnection aConn,
EntityType entityType)
throws SQLException;
/**
* Makes the entity persistent.
*/
public void __caucho_makePersistent(AmberConnection aConn,
EntityItem item)
throws SQLException;
/**
* Pre-cascades the persist operation to child entities.
*/
public void __caucho_cascadePrePersist(AmberConnection aConn)
throws SQLException;
/**
* Pre-cascades the remove operation to child entities.
*/
public void __caucho_cascadePreRemove(AmberConnection aConn)
throws SQLException;
/**
* Post-cascades the persist operation to child entities.
*/
public void __caucho_cascadePostPersist(AmberConnection aConn)
throws SQLException;
/**
* Post-cascades the remove operation to child entities.
*/
public void __caucho_cascadePostRemove(AmberConnection aConn)
throws SQLException;
/**
* Detatch the entity
*/
public void __caucho_detach();
/**
* Creates the entity in the database, making it persistent-new.
*/
public boolean __caucho_create(AmberConnection aConn,
EntityType entityType)
throws SQLException;
/**
* Changes the entity state to P_PERSISTING, but does not flush to database.
*/
public boolean __caucho_lazy_create(AmberConnection aConn,
EntityType entityType)
throws SQLException;
/**
* Sets the __caucho_item.
*/
public void __caucho_setCacheItem(EntityItem item);
/**
* Set the primary key.
*/
public void __caucho_setPrimaryKey(Object key);
/**
* Get the primary key.
*/
public Object __caucho_getPrimaryKey();
/**
* Gets the corresponding cache entity referenced by __caucho_item.
*/
public Entity __caucho_getCacheEntity();
/**
* Gets the __caucho_item.
*/
public EntityItem __caucho_getCacheItem();
/**
* Get the entity type.
*/
public EntityType __caucho_getEntityType();
/**
* Get the entity state.
*/
public EntityState __caucho_getEntityState();
/**
* Sets the entity state.
*/
public void __caucho_setEntityState(EntityState state);
/**
* Sets the connection.
*/
public void __caucho_setConnection(AmberConnection aConn);
/**
* Returns the connection.
*/
public AmberConnection __caucho_getConnection();
/**
* Returns true if the item is loaded
*/
public boolean __caucho_isLoaded();
/**
* Returns true if the entity is dirty.
*/
public boolean __caucho_isDirty();
/**
* Returns true if the entity matches.
*/
public boolean __caucho_match(Class cl, Object key);
/**
* Loads the entity from the database.
*/
public EntityItem __caucho_home_find(AmberConnection aConn,
AmberEntityHome home,
ResultSet rs, int index)
throws SQLException;
/**
* Returns a new entity. In the case of inheritance, needs to query
* the database.
*/
public Entity __caucho_home_find(AmberConnection aConn,
AmberEntityHome home,
Object key);
/**
* Returns a new entity.
*/
public Entity __caucho_home_new(AmberEntityHome home,
Object key,
AmberConnection aConn,
EntityItem cacheItem);
/**
* Merges this entity state into an existing entity.
*/
public void __caucho_mergeFrom(AmberConnection aConn,
Entity targetEntity);
/**
* Retrieves data from the data store, including the eager loads.
*/
public void __caucho_retrieve_eager(AmberConnection aConn);
/**
* Retrieves data from the data store, only loading own fields.
*/
public void __caucho_retrieve_self(AmberConnection aConn);
/**
* Loads the entity from the database and
* returns the number of columns consumed
* from the result set.
*/
public int __caucho_load(AmberConnection aConn, ResultSet rs, int index)
throws SQLException;
/**
* Loads the entity key.
*/
public Object __caucho_load_key(AmberConnection aConn, ResultSet rs, int index)
throws SQLException;
/**
* Loads the entity from the database.
*/
public void __caucho_setKey(PreparedStatement pstmt, int index)
throws SQLException;
/**
* Loads the entity from a native query
*/
public void __caucho_load_native(ResultSet rs, String []columnNames)
throws SQLException;
/**
* Expires data
*/
public void __caucho_expire();
/**
* Deletes the entity from the database.
*/
public void __caucho_delete();
/**
* Called when a foreign object is created/deleted.
*/
public void __caucho_invalidate_foreign(String table, Object key);
/**
* Flushes changes to the backing store.
*/
public boolean __caucho_flush()
throws SQLException;
/**
* After a commit.
*/
public void __caucho_afterCommit();
/**
* After a rollback.
*/
public void __caucho_afterRollback();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy