74 super(ConfmlConfiguration,self).__init__(ref, **kwargs) |
74 super(ConfmlConfiguration,self).__init__(ref, **kwargs) |
75 if kwargs.get('meta'): |
75 if kwargs.get('meta'): |
76 self.meta = kwargs.get('meta') |
76 self.meta = kwargs.get('meta') |
77 if kwargs.get('desc'): |
77 if kwargs.get('desc'): |
78 self.desc = kwargs.get('desc') |
78 self.desc = kwargs.get('desc') |
|
79 if kwargs.get('extensions'): |
|
80 self.extensions = kwargs.get('extensions') |
79 |
81 |
80 def _view_class(self): |
82 def _view_class(self): |
81 return ConfmlView |
83 return ConfmlView |
82 |
84 |
83 def _feature_class(self): |
85 def _feature_class(self): |
127 except exceptions.NotFound: |
129 except exceptions.NotFound: |
128 pass |
130 pass |
129 |
131 |
130 """ The meta element as a property """ |
132 """ The meta element as a property """ |
131 meta = property(get_meta,set_meta,del_meta) |
133 meta = property(get_meta,set_meta,del_meta) |
|
134 |
|
135 def get_extensions(self): |
|
136 """ |
|
137 @return: The extension element of the Configuration. |
|
138 """ |
|
139 try: |
|
140 extensions = getattr(self,ConfmlExtensions.refname) |
|
141 return extensions |
|
142 except AttributeError: |
|
143 return None |
|
144 |
|
145 def set_extensions(self,value): |
|
146 self._add(ConfmlExtensions(value)) |
|
147 |
|
148 def del_extensions(self): |
|
149 try: |
|
150 self._remove(ConfmlExtensions.refname) |
|
151 except exceptions.NotFound: |
|
152 pass |
|
153 |
|
154 """ The extensions element as a property """ |
|
155 extensions = property(get_extensions,set_extensions,del_extensions) |
132 |
156 |
133 class ConfmlSettingAttributes(ConfmlElement): |
157 class ConfmlSettingAttributes(ConfmlElement): |
134 """ |
158 """ |
135 Abstract base class for setting attributes. This is used as |
159 Abstract base class for setting attributes. This is used as |
136 a base in actual ConfmlSetting and ConfmlFeatureLink. |
160 a base in actual ConfmlSetting and ConfmlFeatureLink. |
427 'string', |
451 'string', |
428 'boolean', |
452 'boolean', |
429 'selection'] |
453 'selection'] |
430 def __init__(self, ref,**kwargs): |
454 def __init__(self, ref,**kwargs): |
431 super(ConfmlSetting,self).__init__(ref,**kwargs) |
455 super(ConfmlSetting,self).__init__(ref,**kwargs) |
|
456 self.extensionAttributes = [] |
432 self.type = kwargs.get('type',None) |
457 self.type = kwargs.get('type',None) |
433 |
458 |
434 def get_value_cast(self, value, attr=None): |
459 def get_value_cast(self, value, attr=None): |
435 """ |
460 """ |
436 A function to perform the value type casting in get operation |
461 A function to perform the value type casting in get operation |
494 """ |
519 """ |
495 if value: |
520 if value: |
496 return 'true' |
521 return 'true' |
497 else: |
522 else: |
498 return 'false' |
523 return 'false' |
499 |
524 |
|
525 def set_extension_attributes(self, attributes): |
|
526 self.extensionAttributes = attributes |
|
527 |
|
528 def get_extension_attributes(self): |
|
529 return self.extensionAttributes |
|
530 |
|
531 def add_extension_attribute(self, attribute): |
|
532 self.extensionAttributes.append(attribute) |
500 |
533 |
501 class ConfmlStringSetting(ConfmlSetting): |
534 class ConfmlStringSetting(ConfmlSetting): |
502 """ |
535 """ |
503 Confml setting class for integer type. |
536 Confml setting class for integer type. |
504 """ |
537 """ |
1126 Return a instance of appropriate mapper for given model. |
1159 Return a instance of appropriate mapper for given model. |
1127 """ |
1160 """ |
1128 mapmodule = __import__('cone.confml.mapping') |
1161 mapmodule = __import__('cone.confml.mapping') |
1129 return mapmodule.confml.mapping.MAPPERS[modelname]() |
1162 return mapmodule.confml.mapping.MAPPERS[modelname]() |
1130 |
1163 |
|
1164 class ConfmlExtensions(api.Base): |
|
1165 """ |
|
1166 Confml extensions element |
|
1167 """ |
|
1168 refname = "_extensions" |
|
1169 def __init__(self, **kwargs): |
|
1170 super(ConfmlExtensions,self).__init__(self.refname) |
|
1171 |
|
1172 |
|
1173 class ConfmlExtension(api.Base): |
|
1174 """ |
|
1175 Confml generic subelement of extensions element |
|
1176 """ |
|
1177 refname = "_extension" |
|
1178 def __init__(self, tag, value = None, ns = None, **kwargs): |
|
1179 """ |
|
1180 """ |
|
1181 super(ConfmlExtension,self).__init__(self.refname) |
|
1182 self.tag = tag |
|
1183 self.value = value |
|
1184 self.ns = ns |
|
1185 self.attrs = dict(kwargs.get('attrs') or {}) |
|
1186 |
|
1187 |
|
1188 def __cmp__(self, other): |
|
1189 try: |
|
1190 if self.tag != other.tag or self.value != other.value\ |
|
1191 or self.ns != other.ns or self.attrs != other.attrs: |
|
1192 return 1 |
|
1193 except: |
|
1194 return 1 |
|
1195 return 0 |
|
1196 |
|
1197 def __str__(self): |
|
1198 return "Tag: %s Value: %s Namespace: %s Attributes: % s" % (self.tag, self.value, self.ns, repr(self.attrs)) |
|
1199 |
|
1200 class ConfmlExtensionAttribute(): |
|
1201 """ |
|
1202 Confml generic extension attribute |
|
1203 """ |
|
1204 def __init__(self, name, value = None, ns = None, **kwargs): |
|
1205 """ |
|
1206 """ |
|
1207 self.name = name |
|
1208 self.value = value |
|
1209 self.ns = ns |
|
1210 self.attrs = dict(kwargs.get('attrs') or {}) |
|
1211 |