118 class CarbonConfiguration(CarbonElement, confmlmodel.ConfmlConfiguration): |
119 class CarbonConfiguration(CarbonElement, confmlmodel.ConfmlConfiguration): |
119 def __init__(self, ref='', **kwargs): |
120 def __init__(self, ref='', **kwargs): |
120 super(CarbonConfiguration, self).__init__(ref, **kwargs) |
121 super(CarbonConfiguration, self).__init__(ref, **kwargs) |
121 if self.meta == None: |
122 if self.meta == None: |
122 self.meta = {} |
123 self.meta = {} |
123 |
124 self.name = kwargs.get('name') or utils.resourceref.remove_ext(utils.resourceref.psplit_ref(self.path)[-1]) |
124 self.name = kwargs.get('name') or utils.resourceref.remove_ext(utils.resourceref.psplit_ref(self.path)[-1]) |
125 if self.type == None: |
125 self.meta.add('type',kwargs.get('type', 'configurationroot')) |
126 self.type = 'configurationroot' |
126 self._version_identifier = kwargs.get('version_identifier', None) |
127 self._version_identifier = kwargs.get('version_identifier', None) |
127 |
128 |
128 @property |
129 @property |
129 def version_identifier(self): |
130 def version_identifier(self): |
130 if self._version_identifier == None: |
131 if self._version_identifier == None: |
131 dt = datetime.datetime.today() |
132 dt = datetime.datetime.today() |
132 self._version_identifier = "%dwk%02d" % dt.isocalendar()[0:2] |
133 self._version_identifier = "%dwk%02d" % dt.isocalendar()[0:2] |
133 return self._version_identifier |
134 return self._version_identifier |
134 |
135 |
135 @property |
136 def get_type(self): |
136 def type(self): |
|
137 if self.meta and self.meta.get('type'): |
137 if self.meta and self.meta.get('type'): |
138 return self.meta['type'] |
138 return self.meta.get_property_by_tag('type').value |
139 else: |
139 else: |
140 return 'configurationroot' |
140 return 'configurationroot' |
|
141 |
|
142 def set_type(self, type): |
|
143 if not self.meta: |
|
144 self.meta = {} |
|
145 self.meta.set_property_by_tag('type',type) |
|
146 |
|
147 def del_type(self): |
|
148 del self.meta['type'] |
141 |
149 |
|
150 type = property(get_type, set_type, del_type) |
|
151 |
|
152 def get_version_identifier(self): |
|
153 if self._version_identifier == None: |
|
154 dt = datetime.datetime.today() |
|
155 self._version_identifier = "%dwk%02d" % dt.isocalendar()[0:2] |
|
156 return self._version_identifier |
|
157 |
|
158 def set_version_identifier(self, value): |
|
159 self._version_identifier = value |
|
160 |
|
161 def del_version_identifier(self): |
|
162 del self._version_identifier |
|
163 |
|
164 version_identifier = property(get_version_identifier, set_version_identifier, del_version_identifier) |
|
165 |
142 class FeatureList(CarbonConfiguration): |
166 class FeatureList(CarbonConfiguration): |
143 def __init__(self, ref='', **kwargs): |
167 def __init__(self, ref='', **kwargs): |
144 if not kwargs.get('path'): |
168 if not kwargs.get('path'): |
145 kwargs['path'] = str(kwargs.get('name', '')+'.confml') |
169 if kwargs.get('name'): |
146 kwargs['type'] = 'featurelist' |
170 kwargs['path'] = str(kwargs.get('name', '')+'.confml') |
|
171 else: |
|
172 kwargs['path'] = ref |
|
173 |
|
174 pathmapper = resourcemapper.CarbonResourceMapper() |
|
175 tpath = pathmapper.map_confml_resource("featurelist",kwargs['path']) |
|
176 kwargs['path'] = pathmapper.map_carbon_resource(tpath) |
|
177 |
147 super(FeatureList, self).__init__(ref, **kwargs) |
178 super(FeatureList, self).__init__(ref, **kwargs) |
148 self.name = kwargs.get('name', '') |
179 self._version_identifier = kwargs.get('version_identifier', 'working') |
149 self._version_identifier = kwargs.get('version_identifier', 'WORKING') |
180 self.type = 'featurelist' |
|
181 |
|
182 def _default_object(self, name): |
|
183 return CarbonFeature(name) |
150 |
184 |
151 class CarbonFeature(CarbonElement, confmlmodel.ConfmlSetting): |
185 class CarbonFeature(CarbonElement, confmlmodel.ConfmlSetting): |
152 def __init__(self, ref,**kwargs): |
186 def __init__(self, ref,**kwargs): |
153 ref = utils.resourceref.to_dottedref(ref) |
187 ref = utils.resourceref.to_dottedref(ref) |
154 super(CarbonFeature,self).__init__(ref,**kwargs) |
188 super(CarbonFeature,self).__init__(ref,**kwargs) |
155 |
189 |
156 |
190 |
157 class CarbonSetting(CarbonFeature, confmlmodel.ConfmlSetting): |
191 class CarbonSetting(CarbonFeature, confmlmodel.ConfmlSetting): |
158 pass |
192 def __init__(self, ref,**kwargs): |
|
193 super(CarbonSetting,self).__init__(ref,**kwargs) |
|
194 self.type = 'boolean' |
159 |
195 |
160 class CarbonIntSetting(CarbonFeature, confmlmodel.ConfmlIntSetting): |
196 class CarbonIntSetting(CarbonFeature, confmlmodel.ConfmlIntSetting): |
161 pass |
197 def __init__(self, ref,**kwargs): |
|
198 super(CarbonIntSetting,self).__init__(ref,**kwargs) |
|
199 self.type = 'int' |
162 |
200 |
163 class CarbonBooleanSetting(CarbonFeature, confmlmodel.ConfmlBooleanSetting): |
201 class CarbonBooleanSetting(CarbonFeature, confmlmodel.ConfmlBooleanSetting): |
164 pass |
202 def __init__(self, ref,**kwargs): |
|
203 super(CarbonBooleanSetting,self).__init__(ref,**kwargs) |
|
204 self.type = 'boolean' |
165 |
205 |
166 class CarbonSelectionSetting(CarbonFeature, confmlmodel.ConfmlSelectionSetting): |
206 class CarbonSelectionSetting(CarbonFeature, confmlmodel.ConfmlSelectionSetting): |
167 pass |
207 def __init__(self, ref,**kwargs): |
|
208 super(CarbonSelectionSetting,self).__init__(ref,**kwargs) |
|
209 self.type = 'selection' |
168 |
210 |
169 class CarbonStringSetting(CarbonFeature, confmlmodel.ConfmlSetting): |
211 class CarbonStringSetting(CarbonFeature, confmlmodel.ConfmlSetting): |
170 def __init__(self, ref,**kwargs): |
212 def __init__(self, ref,**kwargs): |
171 super(CarbonStringSetting,self).__init__(ref,**kwargs) |
213 super(CarbonStringSetting,self).__init__(ref,**kwargs) |
172 self.type = 'string' |
214 self.type = 'string' |