7 #ifndef _HALGAPPEDTOPSEGMENTITERATOR_H
8 #define _HALGAPPEDTOPSEGMENTITERATOR_H
12 #include "halTopSegmentIterator.h"
13 #include "halGappedSegmentIterator.h"
26 virtual GappedTopSegmentIteratorPtr
copy() = 0;
29 virtual GappedTopSegmentIteratorConstPtr
copy()
const = 0;
33 virtual void copy(GappedTopSegmentIteratorConstPtr ts)
const = 0;
37 virtual void toChild(GappedBottomSegmentIteratorConstPtr bs)
const = 0;
41 virtual bool equals(GappedTopSegmentIteratorConstPtr other)
const = 0;
44 virtual bool adjacentTo(GappedTopSegmentIteratorConstPtr other)
const = 0;
61 virtual TopSegmentIteratorConstPtr
getLeft()
const = 0;
66 virtual TopSegmentIteratorConstPtr
getRight()
const = 0;
71 virtual void setLeft(TopSegmentIteratorConstPtr ts)
const = 0;
81 friend class counted_ptr<GappedTopSegmentIterator>;
82 friend class counted_ptr<const GappedTopSegmentIterator>;
83 virtual ~GappedTopSegmentIterator() = 0;
86 inline GappedTopSegmentIterator::~GappedTopSegmentIterator() {}
88 inline bool operator==(GappedTopSegmentIteratorConstPtr p1,
89 GappedTopSegmentIteratorConstPtr p2)
91 if (p1.get() == NULL || p2.get() == NULL)
93 return p1.get() == NULL && p2.get() == NULL;
95 return p1->equals(p2);
98 inline bool operator!=(GappedTopSegmentIteratorConstPtr p1,
99 GappedTopSegmentIteratorConstPtr p2)
virtual GappedTopSegmentIteratorPtr copy()=0
virtual bool hasNextParalogy() const =0
virtual void setLeft(TopSegmentIteratorConstPtr ts) const =0
virtual bool equals(GappedTopSegmentIteratorConstPtr other) const =0
virtual bool hasParent() const =0
virtual bool isCanonicalParalog() const =0
virtual void toNextParalogy() const =0
virtual TopSegmentIteratorConstPtr getLeft() const =0
virtual void toChild(GappedBottomSegmentIteratorConstPtr bs) const =0
Definition: halGappedTopSegmentIterator.h:21
virtual bool adjacentTo(GappedTopSegmentIteratorConstPtr other) const =0
virtual bool getParentReversed() const =0
Definition: halGappedSegmentIterator.h:22
virtual TopSegmentIteratorConstPtr getRight() const =0