package com.turtleplayer.persistance.framework.db; /** * TURTLE PLAYER * <p/> * Licensed under MIT & GPL * <p/> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE. * <p/> * More Information @ www.turtle-player.co.uk * * @author Simon Honegger (Hoene84) */ /** * @param <C> eg Cursor * @param <Q> eg sql as String * @param <D> DB object for write operations */ public interface Database<Q, C, D> { abstract <I> I read(Q query, DbReadOp<I, C> readOp); abstract <I> int write(DbWriteOp<D, I> writer, I instance); interface DbReadOp<I, C> { public I read(C db); } interface DbWriteOp<D, I> { public int write(D target, I instance); } }