/* * 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 * * http://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. */ package org.apache.jackrabbit.core.persistence; import java.util.List; import java.util.Map; import org.apache.jackrabbit.core.id.NodeId; import org.apache.jackrabbit.core.persistence.util.NodeInfo; import org.apache.jackrabbit.core.state.ItemStateException; import javax.jcr.RepositoryException; /** * The iterable persistence manager can return the list of {@link NodeId}s and * {@link NodeInfo}s that are stored. * Possible applications are backup, migration (copying a workspace or repository), * data store garbage collection, and consistency checking. */ public interface IterablePersistenceManager extends PersistenceManager { /** * Get all node ids. * A typical application will call this method multiple times, where 'after' * is the last row read previously. The maxCount parameter defines the maximum number of * node ids returned, 0 meaning no limit. The order of the node ids is specific for the * given persistent manager. Items that are added concurrently may not be included. * * @param after the lower limit, or null for no limit. * @param maxCount the maximum number of node ids to return, or 0 for no limit. * @return a list of all node ids. * @throws ItemStateException if an error while loading occurs. * @throws RepositoryException if a repository exception occurs. */ List<NodeId> getAllNodeIds(NodeId after, int maxCount) throws ItemStateException, RepositoryException; /** * Get all {@link NodeInfo}s. * A typical application will call this method multiple time, where 'after' * is the last row read previously. The maxCount parameter defines the maximum number of * node ids returned, 0 meaning no limit. The order of the node ids is specific for the * given persistence manager. Items that are added concurrently may not be included. * * @param after the lower limit, or null for no limit. * @param maxCount the maximum number of node infos to return, or 0 for no limit. * @return a list of all node infos. * @throws ItemStateException if an error while loading occurs. * @throws RepositoryException if a repository exception occurs. */ Map<NodeId, NodeInfo> getAllNodeInfos(NodeId after, int maxCount) throws ItemStateException, RepositoryException; }