diff -r 4f912cd42876 -r 86b5d8a1662f src/main/kotlin/de/uapcore/lightpit/dao/AbstractChildEntityDao.kt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/kotlin/de/uapcore/lightpit/dao/AbstractChildEntityDao.kt Thu Nov 19 13:58:54 2020 +0100 @@ -0,0 +1,64 @@ +/* + * Copyright 2020 Mike Becker. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +package de.uapcore.lightpit.dao + + +abstract class AbstractChildEntityDao : AbstractDao() { + + /** + * Lists all entities being a child of the specified parent. + * @param parent the parent + * @return the list of child instances + */ + abstract fun list(parent: P): List + + /** + * Finds an entity by its integer ID. + * It is not guaranteed that referenced entities are automatically joined. + * + * @param id the id + * @return the entity or null if there is no such entity + */ + abstract fun find(id: Int): T? + + /** + * Inserts an instance into database. + * It is not guaranteed that generated fields will be updated in the instance. + * + * @param instance the instance to insert + * @param parent a reference to the parent + */ + abstract fun save(instance: T, parent: P) + + /** + * Updates an instance in the database. + * + * @param instance the instance to update + * @return true if an instance has been updated, false if the instance is not present in database + */ + abstract fun update(instance: T): Boolean +}