001 /* 002 * Copyright 2001,2004 The Apache Software Foundation. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package org.apache.commons.scaffold.util; 018 019 020 import java.util.Map; 021 022 023 /** 024 * Simple interface to describe public methods on a 025 * data access object. 026 * 027 * @author Ted Husted 028 * @version $Revision: 155464 $ $Date: 2005-02-26 13:26:54 +0000 (Sat, 26 Feb 2005) $ 029 */ 030 public interface Storable { 031 032 033 /** 034 * Commit record to storage. 035 */ 036 public void store() throws Exception; 037 038 039 /** 040 * Retrieve record from storage. 041 */ 042 public void retrieve() throws Exception; 043 044 045 /** 046 * Permenantly delete record. 047 */ 048 public void delete() throws Exception; 049 050 051 /** 052 * Mark entry for deletion. 053 */ 054 public void recycle() throws Exception; 055 056 057 /** 058 * Unmark entry for deletion. 059 */ 060 public void restore() throws Exception; 061 062 063 064 /** 065 * Return this object's primary key. 066 */ 067 public Object getStorageKey(); 068 069 070 /** 071 * Set this object's primary key. 072 */ 073 public void setStorageKey(Object key); 074 075 076 /** 077 * Obtain a new primary key for this object. 078 */ 079 public void allocateKey() throws Exception; 080 081 082 083 /** 084 * Cache the result object of an operation. 085 */ 086 public void setResult(Object result); 087 088 089 /** 090 * Return the result object of an operation. 091 */ 092 public Object getResult(); 093 094 095 /** 096 * Set a result code for an operation. 097 */ 098 public void setResultCode(int resultCode); 099 100 101 /** 102 * Return the result code from an operation. 103 */ 104 public int getResultCode(); 105 106 107 108 /** 109 * Populate this object from a Map. 110 */ 111 public void populate(Map parameters) throws Exception; 112 113 }