JAL-3397 impl.IntervalStore and nonc.IntervalStore unified api
[jalview.git] / src / intervalstore / api / IntervalStoreI.java
diff --git a/src/intervalstore/api/IntervalStoreI.java b/src/intervalstore/api/IntervalStoreI.java
deleted file mode 100644 (file)
index 43aea2b..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-BSD 3-Clause License
-
-Copyright (c) 2018, Mungo Carstairs
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name of the copyright holder nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-package intervalstore.api;
-
-import java.util.Collection;
-import java.util.List;
-
-import intervalstore.impl.NCList;
-
-public interface IntervalStoreI<T extends IntervalI> extends Collection<T>
-{
-
-  /**
-   * Returns a (possibly empty) list of items whose extent overlaps the given
-   * range
-   * 
-   * @param from
-   *          start of overlap range (inclusive)
-   * @param to
-   *          end of overlap range (inclusive)
-   * @return
-   */
-  List<T> findOverlaps(long from, long to);
-
-  /**
-   * Ensures that the IntervalStore is ready for findOverlap.
-   * 
-   * @return true iff the data held satisfy the rules of construction of an
-   *         IntervalStore.
-   * 
-   */
-  boolean isValid();
-
-  /**
-   * Answers the level of nesting of intervals in the store, as
-   * <ul>
-   * <li>0 if the store is empty</li>
-   * <li>1 if all intervals are 'top level' (non nested)</li>
-   * <li>else 1 plus the depth of the enclosed NCList</li>
-   * </ul>
-   * 
-   * @return
-   * @see NCList#getDepth()
-   */
-  int getDepth();
-
-  /**
-   * Return the number of top-level (not-contained) intervals.
-   * 
-   * @return
-   */
-  int getWidth();
-
-  List<T> findOverlaps(long start, long end, List<T> result);
-
-  String prettyPrint();
-
-  /**
-   * Resort and rebuild links.
-   * 
-   * @return
-   */
-  boolean revalidate();
-
-  /**
-   * Get the i-th interval, whatever that means to this store.
-   * 
-   * @param i
-   * @return
-   */
-  IntervalI get(int i);
-
-  /**
-   * Check to see if this store can check for duplicates while adding.
-   * 
-   * @return
-   */
-  boolean canCheckForDuplicates();
-
-  /**
-   * Add with a check for duplicates, if possible.
-   * 
-   * @param interval
-   * @param checkForDuplicate
-   * @return false only if addition was unsuccessful because there was an
-   *         identical interval already in the store or because the store cannot
-   *         check for duplicates
-   */
-  boolean add(T interval, boolean checkForDuplicate);
-
-}
\ No newline at end of file