2 Copyright 2008 Free Software Foundation, Inc.
3 This file is part of GNU Radio
5 GNU Radio Companion is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 GNU Radio Companion is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 ##@package grc.elements.Element
20 #The base class for all elements.
23 class Element(object):
25 def __init__(self, parent=None):
27 self._error_messages = []
32 Test the element against failures.
33 Overload this method in sub-classes.
39 Validate the data in this element.
40 Set the error message non blank for errors.
41 Overload this method in sub-classes.
46 self._error_messages = []#reset err msgs
49 return not self.get_error_messages()
51 def _add_error_message(self, msg):
52 self._error_messages.append(msg)
54 def get_error_messages(self):
55 return self._error_messages
60 def _exit_with_error(self, error):
62 #build hier list of elements
65 elements.insert(0, parent)
66 parent = parent.get_parent()
68 err_str = ">>> Error:"
69 for i, element in enumerate(elements + [error]):
70 err_str = err_str + '\n' + ''.join(' '*(i+2)) + str(element)
71 err_str = err_str + '\n'
74 ##############################################
76 ##############################################
77 def is_flagged(self): return self._flag
80 if self.get_parent(): self.get_parent().flag()
83 if self.get_parent(): self.get_parent().deflag()
85 ##############################################
86 ## Type testing methods
87 ##############################################
88 def is_element(self): return True
89 def is_platform(self): return False
90 def is_flow_graph(self): return False
91 def is_connection(self): return False
92 def is_block(self): return False
93 def is_source(self): return False
94 def is_sink(self): return False
95 def is_port(self): return False
96 def is_param(self): return False