| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * https://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /* |
| * DataStoreCache.java |
| * |
| */ |
| package javax.jdo.datastore; |
| |
| import java.util.Collection; |
| |
| /** |
| * Many JDO implementations allow instances to be cached in a |
| * second-level cache, and allow direct management of the cache by |
| * knowledgeable applications. This interface standardizes this behavior. |
| * @since 2.0 |
| * @version 2.0 |
| */ |
| public interface DataStoreCache { |
| |
| /** Evict the parameter instance from the second-level cache. |
| * @param oid the object id of the instance to evict. |
| * @since 2.0 |
| */ |
| void evict (Object oid); |
| |
| /** Evict the parameter instances from the second-level cache. |
| * All instances in the PersistenceManager's cache are evicted |
| * from the second-level cache. |
| * @since 2.0 |
| */ |
| void evictAll (); |
| |
| /** Evict the parameter instances from the second-level cache. |
| * @param oids the object ids of the instance to evict. |
| * @since 2.0 |
| */ |
| void evictAll (Object... oids); |
| |
| /** Evict the parameter instances from the second-level cache. |
| * @param oids the object ids of the instance to evict. |
| * @since 2.0 |
| */ |
| void evictAll (Collection<?> oids); |
| |
| /** Evict the parameter instances from the second-level cache. |
| * @param pcClass the class of instances to evict |
| * @param subclasses if true, evict instances of subclasses also |
| * @since 2.1 |
| */ |
| void evictAll (boolean subclasses, Class<?> pcClass); |
| |
| /** Pin the parameter instance in the second-level cache. |
| * @param oid the object id of the instance to pin. |
| * @since 2.0 |
| */ |
| void pin (Object oid); |
| |
| /** Pin the parameter instances in the second-level cache. |
| * @param oids the object ids of the instances to pin. |
| * @since 2.0 |
| */ |
| void pinAll (Collection<?> oids); |
| |
| /** Pin the parameter instances in the second-level cache. |
| * @param oids the object ids of the instances to pin. |
| * @since 2.0 |
| */ |
| void pinAll (Object... oids); |
| |
| /** Pin instances in the second-level cache. |
| * @param pcClass the class of instances to pin |
| * @param subclasses if true, pin instances of subclasses also |
| * @since 2.1 |
| */ |
| void pinAll (boolean subclasses, Class<?> pcClass); |
| |
| /** Unpin the parameter instance from the second-level cache. |
| * @param oid the object id of the instance to unpin. |
| * @since 2.0 |
| */ |
| void unpin(Object oid); |
| |
| /** Unpin the parameter instances from the second-level cache. |
| * @param oids the object ids of the instance to evict. |
| * @since 2.0 |
| */ |
| void unpinAll(Collection<?> oids); |
| |
| /** Unpin the parameter instance from the second-level cache. |
| * @param oids the object id of the instance to evict. |
| * @since 2.0 |
| */ |
| void unpinAll(Object... oids); |
| |
| /** Unpin instances from the second-level cache. |
| * @param pcClass the class of instances to unpin |
| * @param subclasses if true, unpin instances of subclasses also |
| * @since 2.1 |
| */ |
| void unpinAll(boolean subclasses, Class<?> pcClass); |
| |
| /** |
| * This class is an empty implementation of the DataStoreCache |
| * interface. It can be used by an implementation that does not |
| * support a second-level cache. |
| * @since 2.0 |
| */ |
| public class EmptyDataStoreCache implements DataStoreCache { |
| |
| public EmptyDataStoreCache() { |
| } |
| |
| public void evict(Object oid) { |
| } |
| |
| public void evictAll() { |
| } |
| |
| public void evictAll(Object... oids) { |
| } |
| |
| public void evictAll(Collection<?> oids) { |
| } |
| |
| public void evictAll(boolean subclasses, Class<?> pcClass) { |
| } |
| |
| public void pin(Object oid) { |
| } |
| |
| public void pinAll(Object... oids) { |
| } |
| |
| public void pinAll(Collection<?> oids) { |
| } |
| |
| public void pinAll(boolean subclasses, Class<?> pcClass) { |
| } |
| |
| public void unpin(Object oid) { |
| } |
| |
| public void unpinAll(Object... oids) { |
| } |
| |
| public void unpinAll(Collection<?> oids) { |
| } |
| |
| public void unpinAll(boolean subclasses, Class<?> pcClass) { |
| } |
| } |
| } |