| /* |
| * 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 |
| <<<<<<< Updated upstream |
| * |
| * 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 |
| ======= |
| * |
| * 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 |
| >>>>>>> Stashed changes |
| * 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) {} |
| } |
| } |