00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef Validate_h
00009 #define Validate_h
00010 
00011 #include <string>
00012 #include <iostream>
00013 
00014 #include "AGTypes.h"
00015 #include "AG.h"
00016 #include "Anchor.h"
00017 #include "Annotation.h"
00018 #include "AGException.h"
00019 #include "Identifiers.h"
00020 
00021 class Validation {
00022 public:
00023 
00030 static bool checkAnchorOffsetTotal(AG *ag, AnnotationType type);
00031 
00039 static bool checkAnchorOffsetBounded(AG *ag, AnnotationType type);
00040 
00048 static bool checkFeatureExists(AG *ag, AnnotationType type, FeatureName featureName);
00049 
00058 static bool checkFeatureIsAnnotationId(AG *ag, AnnotationType type, FeatureName featureName);
00059 
00066 static bool checkLinear(AG *ag, AnnotationType type);
00067 
00074 static bool checkConnected(AG *ag, AnnotationType type);
00075 
00084 static bool checkCoextensive(AG *ag, AnnotationType type1, AnnotationType type2);
00085 
00095 static bool checkSpan(AG *ag, AnnotationType spanType, AnnotationType spannedType);
00096 
00097 };
00098 
00099 #endif