/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2008 Sun Microsystems, Inc. */ package org.opends.server.backends.jeb.importLDIF; import org.opends.server.backends.jeb.EntryID; /** * Interface defining and import ID set. */ public interface ImportIDSet { /** * Add an entry ID to the set. * * @param entryID The entry ID to add. * @param entryLimit The entry limit. * @param maintainCount Maintain count of IDs if in undefined mode. */ public void addEntryID(EntryID entryID, int entryLimit, boolean maintainCount); /** * Return if a set is defined or not. * * @return True if a set is defined. */ public boolean isDefined(); /** * Return the memory size of a set. * * @return The sets current memory size. */ public int getMemorySize(); /** * Convert a set to a byte array suitable for saving to DB. * * @return A byte array representing the set. */ public byte[] toDatabase(); /** * Return the size of the set. * * @return The size of the ID set. */ public int size(); /** * Merge a byte array read from DB with a ID set. * * @param dbBytes The byte array read from DB. * @param bufImportIDSet The import ID set to merge. * @param entryLimit The entry limit. * @param maintainCount Maintain count of iDs if in undefined mode. * @return True if the merged set is undefined. */ public boolean merge(byte[] dbBytes, ImportIDSet bufImportIDSet, int entryLimit, boolean maintainCount); /** * Merge the specified import ID set with the current import ID set using the * specified entry limit an maintain count values. * * @param bufImportIDSet The import ID set to merge. * @param entryLimit The entry limit to use. * @param maintainCount True if maintain count is being kept. */ public void merge(ImportIDSet bufImportIDSet, int entryLimit, boolean maintainCount); /** * Set the import ID set to the undefined state. */ public void setUndefined(); /** * Return the undefined size. * * @return The undefined count. */ public long getUndefinedSize(); /** * Reset set. */ public void reset(); /** * Set the first entry ID to the specified entry ID. * * @param entryID The entry ID to use. */ public void setEntryID(EntryID entryID); /** * Return if a undefined entry ID set has been written to the index DB. * * @return Return Trueif the undefined entry ID set has been * written to the index DB. */ public boolean isDirty(); /** * Set the dirty flag to the specifed value. * * @param dirty The value to set the flag to. */ public void setDirty(boolean dirty); }