configurationengine/source/cone/confml/model.py
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
equal deleted inserted replaced
4:0951727b8815 5:d2c80f5cab53
    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