File: errors.py

package info (click to toggle)
w3af 1.0-rc3svn3489-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 59,908 kB
  • ctags: 16,916
  • sloc: python: 136,990; xml: 63,472; sh: 153; ruby: 94; makefile: 40; asm: 35; jsp: 32; perl: 18; php: 5
file content (137 lines) | stat: -rw-r--r-- 3,103 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Natural Language Toolkit: Shoebox Errors
#
# Copyright (C) 2001-2006 NLTK Project
# Author: Stuart Robinson <Stuart.Robinson@mpi.nl>
# URL: <http://www.nltk.org/>
# For license information, see LICENSE.TXT

"""
This module provides Shoebox exceptions.
"""

# ---------------------------------------------------------------------
# CLASS:  ShoeboxError
# DESC:   ???
# ---------------------------------------------------------------------

class ShoeboxError(Exception):
    """
    This is the base class for all Shoebox errors.
    """
    def __init__(self):
        self._msg = ""

    
# ---------------------------------------------
# CLASS:  ValidationError
# DESC:   ???
# ---------------------------------------------

class NonUniqueEntryError(ShoeboxError):
    """
    ???
    """
    def __init__(self) :
        pass

class ValidationError(ShoeboxError):    

    def __init__(self):
        pass

    def setField(self, field):
       self._field = field
    
    def getField(self):
       return self._field


# ---------------------------------------------
# CLASS:  NoMetadataFound
# DESC:   ???
# ---------------------------------------------

class NoMetadataFound(ValidationError):

  def __init__(self, field):
    self._field = field


class FieldError(ShoeboxError):

    def __init__(self):
        pass

    def __str__(self) :
        return self.get_message()

  
class NonUniqueFieldError(FieldError):
  """
  Error raised when an attempt is made to retrieve a unique field which has more than one value
  """
  def __init__(self, entry):
    self._entry = entry

  def setEntry(self, entry):
    self._entry = entry
    
  def getEntry(self):
    return self._entry


# ---------------------------------------------
# CLASS:  BadFieldValue
# DESC:   ???
# ---------------------------------------------

class BadFieldValueError(ValidationError, FieldError):
  
  FIELD_VALUE_ERROR_RANGE_SET    = '1'
  FIELD_VALUE_ERROR_NO_WORD_WRAP = '2'
  FIELD_VALUE_ERROR_EMPTY_VALUE  = '3'
  FIELD_VALUE_ERROR_SINGLE_WORD  = '4'
  
  errorTypes = {
    '1': "Range Set",
    '2': "No Word Wrap",
    '3': "Empty Value",
    '4': "Single Word"
    }

  def __init__(self, errorType, entry, field, fmMetadata):
    self._entry       = entry
    self._errorType   = errorType
    self._field       = field
    self._fmMetadata  = fmMetadata

  def __str__(self):
    e   = self.getEntry()
    f   = self.getField()
    typ = self.getErrorDescription()
    s = "'%s' error in '\\%s' field of record %i!\nRecord:\n%s" % (typ, f.getMarker(), e.getNumber(), e.getRawText())
    return s

  def getFieldMarkerMetadata(self):
    return self._fmMetadata

  def setFieldMarkerMetadata(self, fmMetadata):
    self._fmMetadata = fmMetadata

  def getErrorDescription(self):
    try:
      return self.errorTypes[self.getErrorType()]
    except:
      return None
    
  def getErrorType(self):
    return self._errorType

  def setErrorType(self, errorType):
    self._errorType = errorType
    
  def getEntry(self):
    return self._entry

  def setEntry(self, entry):
    self._entry = entry