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    package org.apache.commons.cache;
017    
018    import java.io.Serializable;
019    
020    /**
021     * tk.
022     * @version $Id: Stash.java 155435 2005-02-26 13:17:27Z dirkv $
023     * @author Rodney Waldhoff
024     */
025    public interface Stash extends Serializable {
026      public static final int YES             = 1;
027      public static final int NO_FULL         = 2;
028      public static final int NO_NOT_STORABLE = 3;
029      public static final int NO              = 4;
030    
031      public int canStore(Serializable key, Serializable val, Long expiresAt, Long cost, Serializable group);
032      public int canStore(Serializable key, Serializable val, Long expiresAt, Long cost, Serializable group, byte[] serialized);
033      public boolean store(Serializable key, Serializable val, Long expiresAt, Long cost, Serializable group);
034      public boolean store(Serializable key, Serializable val, Long expiresAt, Long cost, Serializable group, byte[] serialized);
035      public Serializable retrieve(Serializable key);
036      public boolean contains(Serializable key);
037      public void clear(Serializable key);
038      public void clear();
039      public float capacity();
040    
041    
042      public void setCache(Cache c);
043      public void unsetCache();
044      public boolean wantsSerializedForm();
045    }