00001 #ifndef _MATRIXITEMCONTENTS_H
00002 #define _MATRIXITEMCONTENTS_H
00003
00004 #include "MatrixIdx.h"
00005
00006 #include "AnnotationScore.h"
00007
00008 class AnnotationItem;
00009
00010 class MatrixItemContents : public MatrixIdx {
00011 public:
00012 MatrixItemContents() : _pred(NULL), _type(-1) { }
00013 MatrixItemContents(const MatrixIdx& mi, const AnnotationItem* pred, int type, const AnnotationScore& scr) :
00014 MatrixIdx(mi), _pred(pred), _type(type), _score(scr)
00015 {}
00016 MatrixItemContents(const MatrixItemContents& mi) : MatrixIdx(mi), _pred(mi._pred), _type(mi._type), _score(mi._score)
00017 {}
00018
00019 void init(const MatrixIdx& mi, const AnnotationItem* pred, int type, const AnnotationScore& scr);
00020 void init(const MatrixItemContents&);
00021
00022 AnnotationScore getScore() const { return _score;}
00023 const AnnotationItem* getPred() const { return _pred; }
00024 int getType() const { return _type; }
00025
00026 friend std::ostream&
00027 operator<<(std::ostream&,const MatrixItemContents&);
00028
00029 private:
00030 const AnnotationItem* _pred;
00031 int _type;
00032 AnnotationScore _score;
00033 };
00034
00035
00036 #endif // _MATRIXITEMCONTENTS_H