.. java:import:: java.io IOException .. java:import:: java.security NoSuchAlgorithmException .. java:import:: java.util HashSet .. java:import:: java.util List .. java:import:: java.util Objects .. java:import:: java.util Set .. java:import:: org.apache.shiro SecurityUtils .. java:import:: org.apache.shiro.authz AuthorizationException .. java:import:: org.caosdb.server CaosDBException .. java:import:: org.caosdb.server.database BackendTransaction .. java:import:: org.caosdb.server.database.access Access .. java:import:: org.caosdb.server.database.backend.transaction DeleteEntityTransaction .. java:import:: org.caosdb.server.database.backend.transaction InsertEntityTransaction .. java:import:: org.caosdb.server.database.backend.transaction RetrieveFullEntityTransaction .. java:import:: org.caosdb.server.database.backend.transaction UpdateEntityTransaction .. java:import:: org.caosdb.server.database.misc RollBackHandler .. java:import:: org.caosdb.server.entity DeleteEntity .. java:import:: org.caosdb.server.entity EntityID .. java:import:: org.caosdb.server.entity EntityIdRegistry .. java:import:: org.caosdb.server.entity EntityInterface .. java:import:: org.caosdb.server.entity FileProperties .. java:import:: org.caosdb.server.entity InsertEntity .. java:import:: org.caosdb.server.entity Message .. java:import:: org.caosdb.server.entity RetrieveEntity .. java:import:: org.caosdb.server.entity UpdateEntity .. java:import:: org.caosdb.server.entity.container TransactionContainer .. java:import:: org.caosdb.server.entity.container WritableContainer .. java:import:: org.caosdb.server.entity.wrapper Parent .. java:import:: org.caosdb.server.entity.wrapper Property .. java:import:: org.caosdb.server.jobs Job .. java:import:: org.caosdb.server.jobs Schedule .. java:import:: org.caosdb.server.permissions EntityACL .. java:import:: org.caosdb.server.permissions EntityPermission .. java:import:: org.caosdb.server.permissions Permission .. java:import:: org.caosdb.server.query Query .. java:import:: org.caosdb.server.utils EntityStatus .. java:import:: org.caosdb.server.utils ServerMessages WriteTransaction ================ .. java:package:: org.caosdb.server.transaction :noindex: .. java:type:: public class WriteTransaction extends Transaction implements WriteTransactionInterface This class is responsible for inserting, updating and deleting entities which are held in the \ :java:ref:`TransactionContainer`\ . This class initializes and runs the \ :java:ref:`Schedule`\ of \ :java:ref:`Job`\ s, calls the \ :java:ref:`BackendTransaction`\ s for each entity, and handles exceptions, roll-back (if necessary) and clean up afterwards. :author: Timm Fitschen Constructors ------------ WriteTransaction ^^^^^^^^^^^^^^^^ .. java:constructor:: public WriteTransaction(WritableContainer container) :outertype: WriteTransaction Methods ------- checkPermissions ^^^^^^^^^^^^^^^^ .. java:method:: public static void checkPermissions(EntityInterface entity, Set permissions) :outertype: WriteTransaction Check if the user has all permissions cleanUp ^^^^^^^ .. java:method:: @Override protected final void cleanUp() :outertype: WriteTransaction commit ^^^^^^ .. java:method:: @Override protected void commit() throws Exception :outertype: WriteTransaction deriveUpdate ^^^^^^^^^^^^ .. java:method:: public HashSet deriveUpdate(EntityInterface newEntity, EntityInterface oldEntity) throws NoSuchAlgorithmException, IOException, CaosDBException :outertype: WriteTransaction The entity is set to VALID iff there are no updates to be processed. The entity is set to QUALIFIED otherwise. :param newEntity: :param oldEntity: :throws CaosDBException: :throws IOException: :throws NoSuchAlgorithmException: generateId ^^^^^^^^^^ .. java:method:: @Override public String generateId() :outertype: WriteTransaction getSRID ^^^^^^^ .. java:method:: @Override public String getSRID() :outertype: WriteTransaction init ^^^^ .. java:method:: @Override protected void init() throws Exception :outertype: WriteTransaction logHistory ^^^^^^^^^^ .. java:method:: @Override public boolean logHistory() :outertype: WriteTransaction postCheck ^^^^^^^^^ .. java:method:: @Override protected void postCheck() :outertype: WriteTransaction postTransaction ^^^^^^^^^^^^^^^ .. java:method:: @Override protected void postTransaction() throws Exception :outertype: WriteTransaction preCheck ^^^^^^^^ .. java:method:: @Override protected void preCheck() throws InterruptedException, Exception :outertype: WriteTransaction preTransaction ^^^^^^^^^^^^^^ .. java:method:: @Override protected final void preTransaction() throws InterruptedException :outertype: WriteTransaction rollBack ^^^^^^^^ .. java:method:: @Override protected void rollBack() :outertype: WriteTransaction setNoIdIsError ^^^^^^^^^^^^^^ .. java:method:: public void setNoIdIsError(boolean noIdIsError) :outertype: WriteTransaction Set if it is an error, if an Entity has no ID but just a name upon update. transaction ^^^^^^^^^^^ .. java:method:: @Override protected void transaction() throws Exception :outertype: WriteTransaction