ch.agent.crnickl.jdbc
Class WriteMethodsForChroniclesAndSeries

java.lang.Object
  extended by ch.agent.crnickl.impl.DatabaseMethodsImpl
      extended by ch.agent.crnickl.jdbc.JDBCDatabaseMethods
          extended by ch.agent.crnickl.jdbc.ReadMethodsForChroniclesAndSeries
              extended by ch.agent.crnickl.jdbc.WriteMethodsForChroniclesAndSeries
All Implemented Interfaces:
ch.agent.crnickl.impl.DatabaseMethods, ch.agent.crnickl.impl.PermissionChecker

public class WriteMethodsForChroniclesAndSeries
extends ReadMethodsForChroniclesAndSeries

A stateless object with methods providing write access to chronicles and series.

Author:
Jean-Paul Vetterli

Constructor Summary
WriteMethodsForChroniclesAndSeries()
           
 
Method Summary
 void createChronicle(ch.agent.crnickl.api.Chronicle chronicle)
          Create a chronicle in the database.
 void createSeries(ch.agent.crnickl.api.Series<?> series)
          Create an empty series.
 void deleteAttribute(ch.agent.crnickl.api.Chronicle chronicle, ch.agent.crnickl.api.AttributeDefinition<?> def)
          Delete an attribute value from a chronicle.
 void deleteChronicle(ch.agent.crnickl.api.UpdatableChronicle chronicle, ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
          Delete a chronicle from the database.
 void deleteSeries(ch.agent.crnickl.api.UpdatableSeries<?> series, ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
          Delete a series.
 void updateAttribute(ch.agent.crnickl.api.UpdatableChronicle chronicle, ch.agent.crnickl.api.AttributeDefinition<?> def, String value, String description)
          Update a chronicle attribute.
 void updateChronicle(ch.agent.crnickl.api.UpdatableChronicle chronicle, ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
          Update a chronicle.
 
Methods inherited from class ch.agent.crnickl.jdbc.ReadMethodsForChroniclesAndSeries
getAttributeValue, getChronicle, getChronicleOrNull, getChroniclesByAttributeValue, getChroniclesByParent, getSeries, getSeries
 
Methods inherited from class ch.agent.crnickl.jdbc.JDBCDatabaseMethods
close, executeAndGetNewId, getId, getId, getIdOrZero, makeSurrogate, open, open, open
 
Methods inherited from class ch.agent.crnickl.impl.DatabaseMethodsImpl
check, check, check, check, checkIntegrity, makeSurrogate, makeSurrogate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WriteMethodsForChroniclesAndSeries

public WriteMethodsForChroniclesAndSeries()
Method Detail

createChronicle

public void createChronicle(ch.agent.crnickl.api.Chronicle chronicle)
                     throws ch.agent.crnickl.T2DBException
Create a chronicle in the database. Throw an exception if the operation cannot be done.

Parameters:
chronicle - a chronicle
Throws:
ch.agent.crnickl.T2DBException

deleteChronicle

public void deleteChronicle(ch.agent.crnickl.api.UpdatableChronicle chronicle,
                            ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
                     throws ch.agent.crnickl.T2DBException
Delete a chronicle from the database. Also delete its attribute values and possibly other dependent objects. The chronicle update policy is supposed to forbid deleting when there are dependent chronicles or series, but to allow cascading delete of attribute values. Throw an exception if the operation cannot be done.

Parameters:
chronicle - a chronicle
policy - a chronicle updating policy
Throws:
ch.agent.crnickl.T2DBException

updateChronicle

public void updateChronicle(ch.agent.crnickl.api.UpdatableChronicle chronicle,
                            ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
                     throws ch.agent.crnickl.T2DBException
Update a chronicle. Currently only name and description can be updated. The schema and the parent chronicle cannot be updated. Throw an exception if the operation cannot be done.

Parameters:
chronicle - a chronicle
policy - a chronicle updating policy
Throws:
ch.agent.crnickl.T2DBException

updateAttribute

public void updateAttribute(ch.agent.crnickl.api.UpdatableChronicle chronicle,
                            ch.agent.crnickl.api.AttributeDefinition<?> def,
                            String value,
                            String description)
                     throws ch.agent.crnickl.T2DBException
Update a chronicle attribute. Throw an exception if the operation cannot be done.

Parameters:
chronicle - a chronicle
def - an attribute definition
value - a value
description - a string
Throws:
ch.agent.crnickl.T2DBException

deleteAttribute

public void deleteAttribute(ch.agent.crnickl.api.Chronicle chronicle,
                            ch.agent.crnickl.api.AttributeDefinition<?> def)
                     throws ch.agent.crnickl.T2DBException
Delete an attribute value from a chronicle. Throw an exception if the operation cannot be done.

Parameters:
chronicle - a chronicle
def - an attribute definition
Throws:
ch.agent.crnickl.T2DBException

createSeries

public void createSeries(ch.agent.crnickl.api.Series<?> series)
                  throws ch.agent.crnickl.T2DBException
Create an empty series. Throw an exception if the operation cannot be done.

Parameters:
series - a series
Throws:
ch.agent.crnickl.T2DBException

deleteSeries

public void deleteSeries(ch.agent.crnickl.api.UpdatableSeries<?> series,
                         ch.agent.crnickl.impl.ChronicleUpdatePolicy policy)
                  throws ch.agent.crnickl.T2DBException
Delete a series. The policy typically forbids to delete a series which is not empty. Throw an exception if the operation cannot be done.

Parameters:
series - a series
policy - a chronicle update policy
Throws:
ch.agent.crnickl.T2DBException


Copyright © 2013. All Rights Reserved.