001/*
002 * $Id$
003 */
004
005package edu.jas.poly;
006
007
008import java.io.Serializable;
009import java.util.List;
010import java.util.ArrayList;
011
012
013/**
014 * Container for lists of overlap words.
015 * List of Overlaps.
016 * @author Heinz Kredel
017 */
018
019public class OverlapList implements Serializable {
020
021    public final List<Overlap> ols;
022
023
024    /**
025     * Constructor.
026     */
027    public OverlapList() {
028        ols = new ArrayList<Overlap>();
029    }
030
031
032    /**
033     * Add to list.
034     */
035    public void add(Overlap ol) {
036        ols.add(ol);
037    }
038
039
040    /**
041     * Get the string representation.
042     * @see java.lang.Object#toString()
043     */
044    @Override
045    public String toString() {
046        return ols.toString();
047    }
048
049
050    /**
051     * Is word overlap list.
052     * @param u word
053     * @param v word
054     * @return true if l1 * u * r1 = l2 * v * r2 for all overlaps, else false.
055     */
056    public boolean isOverlap(Word u, Word v) {
057        for (Overlap ol : ols ) {
058            if ( !ol.isOverlap(u,v) ) {
059                return false;
060            }
061        }
062        return true;
063    }
064
065}