configurationengine/source/cone/confml/model.py
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
permissions -rw-r--r--
Adding EPL version of configurationengine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
Base class for Confml elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
Attributes:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
 All Confml element attributes become attributes of this instance.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
"""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
import types
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
from cone.public import api, exceptions, container, utils
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
class ConfmlElement(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
    def _get_mapper(self,modelname):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
        Return a instance of appropriate mapper for given model.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
        mapmodule = __import__('cone.confml.mapping')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
        return mapmodule.confml.mapping.MAPPERS[modelname]()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
    def set_desc(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
        self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
    desc = property(get_desc,set_desc,del_desc)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
class ConfmlConfiguration(ConfmlElement, api.Configuration):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
    Confml configuration class. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
    def __init__(self,ref="", **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
        super(ConfmlConfiguration,self).__init__(ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
        if kwargs.get('meta'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
            self.meta = kwargs.get('meta')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
            self.desc = kwargs.get('desc')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
        @return: The description of the Configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
    def set_desc(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
        self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
    desc = property(get_desc,set_desc,del_desc)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
    def get_meta(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
        @return: The description of the Configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
            meta = getattr(self,ConfmlMeta.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
            return meta
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
    def set_meta(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
        self._add(ConfmlMeta(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
    def del_meta(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
            self._remove(ConfmlMeta.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
    """ The meta element as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
    meta = property(get_meta,set_meta,del_meta)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
class ConfmlGroup(ConfmlElement, api.Group):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
    Confml view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
    def __init__(self, ref="", **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
        super(ConfmlGroup,self).__init__(ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
        if kwargs.get('icon'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
            self.icon = kwargs.get('icon')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
            self.desc = kwargs.get('desc')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
    def get_icon(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
            icon = getattr(self,ConfmlIcon.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
            return icon.href
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
    def set_icon(self,value): self._add(ConfmlIcon(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
    def del_icon(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
            self._remove(ConfmlIcon.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
    """ The icon as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
    icon = property(get_icon,set_icon,del_icon)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
    def set_desc(self,value): self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
    desc = property(get_desc,set_desc,del_desc)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
class ConfmlView(api.View):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
    Confml view.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
    def __init__(self, ref="", **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
        super(ConfmlView,self).__init__(ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
            self.desc = kwargs.get('desc')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
    def set_desc(self,value): self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
    desc = property(get_desc,set_desc,del_desc)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
class ConfmlFeature(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
    pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
class ConfmlSetting(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
    Confml setting class. Attribute 'options' contains options of this setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
    supported_types = ['int',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
                       'string',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
                       'boolean',
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
                       'selection']
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
        super(ConfmlSetting,self).__init__(ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
        self.type = kwargs.get('type',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
            self.desc = kwargs.get('desc')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
        if kwargs.get('minOccurs'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
            self.minOccurs = kwargs.get('minOccurs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
        if kwargs.get('maxOccurs'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
            self.maxOccurs = kwargs.get('maxOccurs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
        if kwargs.get('maxLength'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
            self.maxLength = kwargs.get('maxLength')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
        if kwargs.get('minLength'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
            self.minLength = kwargs.get('minLength')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
        if kwargs.get('mapKey'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
            self.mapKey = kwargs.get('mapKey')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
        if kwargs.get('mapValue'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
            self.mapValue = kwargs.get('mapValue')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
        self.readOnly = kwargs.get('readOnly',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
        self.constraint = kwargs.get('constraint',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
        self.required = kwargs.get('required',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
        self.relevant = kwargs.get('relevant',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
        return api.ValueRe('.*')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
    def add_property(self, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
        @param name=str: property name 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
        @param value=str: property value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
        @param unit=str: property unit, e.g. kB
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
        self._add(ConfmlProperty(**kwargs), container.APPEND)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
    def get_property(self, name):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
        @param name: The name of the property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
        for property in utils.get_list(self._get(ConfmlProperty.refname)):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
            if property.name == name:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
                return property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
        raise exceptions.NotFound("ConfmlProperty with name %s not found!" % name)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
    def remove_property(self, name):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
        remove a given option from this feature by name. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
        @param name: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
        for property in self._get(ConfmlProperty.refname):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   238
            if property.name == name:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   239
                return self._remove(property.get_fullref())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
        raise exceptions.NotFound("ConfmlProperty with name %s not found!" % name)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
    def list_properties(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
        Return a array of all Feature children references under this object.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
        return [obj.name for obj in utils.get_list(self._get(ConfmlProperty.refname))]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
    def get_maxlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
            return getattr(self,ConfmlMaxLength.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
    def set_maxlength(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
        self._add(ConfmlMaxLength(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
    def del_maxlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
            self._remove(ConfmlMaxLength.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
    maxLength = property(get_maxlength,set_maxlength,del_maxlength)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
    def get_minlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
            return getattr(self,ConfmlMinLength.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   271
    def set_minlength(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   272
        self._add(ConfmlMinLength(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   273
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   274
    def del_minlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   275
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   276
            self._remove(ConfmlMinLength.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   277
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   278
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   279
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   280
    minLength = property(get_minlength,set_minlength,del_minlength)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   281
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   282
    def get_minInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   283
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   284
            return getattr(self,ConfmlMinInclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   285
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   286
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   287
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   288
    def set_minInclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   289
        self._add(ConfmlMinInclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   290
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   291
    def del_minInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   292
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   293
            self._remove(ConfmlMinInclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   294
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   295
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   296
    """ The minInclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   297
    minInclusive = property(get_minInclusive,set_minInclusive,del_minInclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   298
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   299
    def get_maxInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   300
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   301
            return getattr(self,ConfmlMaxInclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   302
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   303
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   304
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   305
    def set_maxInclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   306
        self._add(ConfmlMaxInclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   307
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   308
    def del_maxInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   309
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   310
            self._remove(ConfmlMaxInclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   311
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   312
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   313
    """ The minInclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   314
    maxInclusive = property(get_maxInclusive,set_maxInclusive,del_maxInclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   315
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   316
    def get_minExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   317
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   318
            return getattr(self,ConfmlMinExclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   319
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   320
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   321
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   322
    def set_minExclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   323
        self._add(ConfmlMinExclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   324
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   325
    def del_minExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   326
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   327
            self._remove(ConfmlMinExclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   328
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   329
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   330
    """ The minExclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   331
    minExclusive = property(get_minExclusive,set_minExclusive,del_minExclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   332
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   333
    def get_maxExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   334
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   335
            return getattr(self,ConfmlMaxExclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   336
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   337
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   338
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   339
    def set_maxExclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   340
        self._add(ConfmlMaxExclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   341
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   342
    def del_maxExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   343
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   344
            self._remove(ConfmlMaxExclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   345
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   346
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   347
    """ The maxExclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   348
    maxExclusive = property(get_maxExclusive,set_maxExclusive,del_maxExclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   349
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   350
    def get_pattern(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   351
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   352
            return getattr(self,ConfmlPattern.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   353
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   354
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   355
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   356
    def set_pattern(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   357
        self._add(ConfmlPattern(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   358
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   359
    def del_pattern(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   360
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   361
            self._remove(ConfmlPattern.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   362
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   363
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   364
    """ The pattern as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   365
    pattern = property(get_pattern,set_pattern,del_pattern)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   366
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   367
    def get_totalDigits(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   368
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   369
            return getattr(self,ConfmlTotalDigits.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   370
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   371
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   372
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   373
    def set_totalDigits(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   374
        self._add(ConfmlTotalDigits(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   375
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   376
    def del_totalDigits(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   377
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   378
            self._remove(ConfmlTotalDigits.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   379
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   380
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   381
    """ The totalDigits as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   382
    totalDigits = property(get_totalDigits,set_totalDigits,del_totalDigits)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   383
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   384
    @property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   385
    def options(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   386
        optdict = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   387
        for opt in self._objects(type=api.Option):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   388
            optdict[opt.value] = opt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   389
        return  optdict
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   390
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   391
    @property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   392
    def properties(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   393
        dict = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   394
        for property in utils.get_list(self._get(ConfmlProperty.refname)):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   395
            dict[property.name] = property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   396
        return  dict
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   397
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   398
    def get_rfs(self,):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   399
        return super(ConfmlSetting,self).get_value('rfs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   400
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   401
    def set_rfs(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   402
        super(ConfmlSetting,self).set_value('rfs',value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   403
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   404
    def del_rfs(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   405
        super(ConfmlSetting,self).del_value('rfs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   406
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   407
    rfs = property(get_rfs,set_rfs,del_rfs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   408
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   409
    def get_value_cast(self, value, attr=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   410
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   411
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   412
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   413
        @param attr: the attribute which is fetched from model (normally in confml either None='data' or 'rfs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   414
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   415
        if not attr or attr == 'data':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   416
            return self.get_data_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   417
        elif attr == 'rfs':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   418
            return self.get_rfs_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   419
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   420
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   421
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   422
    def set_value_cast(self, value, attr=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   423
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   424
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   425
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   426
        @param attr: the attribute which is fetched from model (normally in confml either None='data' or 'rfs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   427
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   428
        if not attr or attr == 'data':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   429
            return self.set_data_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   430
        elif attr == 'rfs':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   431
            return self.set_rfs_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   432
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   433
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   434
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   435
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   436
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   437
        A function to perform the data type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   438
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   439
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   440
        return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   441
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   442
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   443
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   444
        A function to perform the data type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   445
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   446
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   447
        return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   448
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   449
    def get_rfs_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   450
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   451
        A function to perform the rfs type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   452
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   453
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   454
        if value == 'true':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   455
            return True
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   456
        elif value == 'false':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   457
            return False
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   458
        else: # otherwise this is an invalid rfs value. Should it report an error?
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   459
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   460
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   461
    def set_rfs_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   462
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   463
        A function to perform the rfs type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   464
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   465
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   466
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   467
            return 'true'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   468
        else: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   469
            return 'false'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   470
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   471
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   472
class ConfmlStringSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   473
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   474
    Confml setting class for integer type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   475
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   476
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   477
        kwargs['type'] = 'string'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   478
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   479
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   480
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   481
class ConfmlIntSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   482
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   483
    Confml setting class for integer type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   484
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   485
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   486
        kwargs['type'] = 'int'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   487
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   488
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   489
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   490
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   491
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   492
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   493
        return api.ValueRange(0,sys.maxint)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   494
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   495
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   496
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   497
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   498
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   499
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   500
            try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   501
                return int(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   502
            except ValueError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   503
                return int(value, 16)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   504
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   505
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   506
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   507
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   508
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   509
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   510
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   511
        return str(int(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   512
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   513
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   514
class ConfmlRealSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   515
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   516
    Confml setting class for real type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   517
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   518
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   519
        kwargs['type'] = 'real'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   520
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   521
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   522
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   523
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   524
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   525
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   526
        return api.ValueRange(0,float(sys.maxint))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   527
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   528
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   529
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   530
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   531
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   532
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   533
            return float(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   534
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   535
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   536
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   537
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   538
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   539
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   540
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   541
        return str(float(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   542
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   543
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   544
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   545
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   546
class ConfmlBooleanSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   547
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   548
    Confml setting class for boolean type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   549
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   550
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   551
        kwargs['type'] = 'boolean'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   552
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   553
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   554
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   555
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   556
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   557
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   558
        return api.ValueSet([True,False])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   559
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   560
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   561
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   562
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   563
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   564
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   565
            if value in ('true', '1'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   566
                return True
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   567
            else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   568
                return False
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   569
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   570
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   571
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   572
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   573
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   574
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   575
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   576
        if isinstance(value, basestring):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   577
            if value in ('false', '0'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   578
                return 'false'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   579
            elif value in ('true', '1'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   580
                return 'true'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   581
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   582
        return str(bool(value)).lower()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   583
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   584
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   585
class ConfmlSelectionSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   586
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   587
    Confml setting class for boolean type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   588
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   589
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   590
        kwargs['type'] = 'selection'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   591
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   592
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   593
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   594
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   595
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   596
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   597
        return api.Feature.get_valueset(self)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   598
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   599
class ConfmlMultiSelectionSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   600
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   601
    Confml setting class for multiSelection type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   602
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   603
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   604
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   605
        kwargs['type'] = 'multiSelection'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   606
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   607
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   608
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   609
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   610
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   611
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   612
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   613
        return api.Feature.get_valueset(self)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   614
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   615
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   616
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   617
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   618
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   619
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   620
            if not isinstance(value, types.ListType):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   621
                values = value.split('" "')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   622
                for i in range(len(values)):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   623
                    if values[i].startswith('"'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   624
                        values[i] = values[i][1:] 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   625
                    if values[i].endswith('"'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   626
                        values[i] = values[i][:-1]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   627
                return values
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   628
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   629
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   630
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   631
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   632
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   633
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   634
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   635
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   636
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   637
        if isinstance(value, list):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   638
            value = " ".join(['"%s"' % elem for elem in value])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   639
        return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   640
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   641
    def set_value(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   642
        if not isinstance(value, types.ListType):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   643
            raise ValueError("Only list types are allowed.")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   644
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   645
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   646
class ConfmlDateSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   647
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   648
    Confml setting class for date type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   649
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   650
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   651
        kwargs['type'] = 'date'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   652
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   653
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   654
class ConfmlTimeSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   655
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   656
    Confml setting class for time type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   657
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   658
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   659
        kwargs['type'] = 'time'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   660
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   661
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   662
class ConfmlDateTimeSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   663
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   664
    Confml setting class for date-time type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   665
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   666
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   667
        kwargs['type'] = 'dateTime'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   668
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   669
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   670
class ConfmlDurationSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   671
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   672
    Confml setting class for date type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   673
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   674
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   675
        kwargs['type'] = 'duration'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   676
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   677
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   678
class ConfmlSequenceSetting(api.FeatureSequence,ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   679
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   680
    Confml setting class. Attribute 'options' contains options of this setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   681
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   682
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   683
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   684
        api.FeatureSequence.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   685
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   686
class ConfmlFileSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   687
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   688
    Confml file setting class.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   689
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   690
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   691
        kwargs['type'] = 'file'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   692
        ConfmlSetting.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   693
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   694
        The file element always includes localPath and targetPath child elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   695
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   696
        self.add_feature(ConfmlLocalPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   697
        self.add_feature(ConfmlTargetPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   698
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   699
class ConfmlFolderSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   700
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   701
    Confml folder setting class.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   702
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   703
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   704
        kwargs['type'] = 'folder'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   705
        ConfmlSetting.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   706
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   707
        The folder element always includes localPath and targetPath child elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   708
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   709
        self.add_feature(ConfmlLocalPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   710
        self.add_feature(ConfmlTargetPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   711
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   712
class ConfmlLocalPath(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   713
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   714
    Confml file class. Attribute setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   715
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   716
    def __init__(self, ref='localPath', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   717
        kwargs['type'] = 'string'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   718
        ConfmlElement.__init__(self, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   719
        api.Feature.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   720
        self.readOnly = kwargs.get('readOnly', None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   721
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   722
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   723
class ConfmlTargetPath(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   724
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   725
    Confml file class. Attribute setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   726
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   727
    def __init__(self, ref='targetPath', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   728
        kwargs['type'] = 'string'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   729
        ConfmlElement.__init__(self, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   730
        api.Feature.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   731
        self.readOnly = kwargs.get('readOnly', None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   732
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   733
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   734
class ConfmlMeta(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   735
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   736
    Confml meta element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   737
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   738
    refname = "_meta"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   739
    def __init__(self, array=None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   740
        super(ConfmlMeta,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   741
        self.array  = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   742
        if array:            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   743
            self.array += array
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   744
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   745
    def __getitem__(self, key):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   746
        return self.array[key]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   747
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   748
    def __delitem__(self, key):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   749
        del self.array[key]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   750
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   751
    def __setitem__(self, key, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   752
        self.array[key] = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   753
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   754
    def __str__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   755
        tempstr = "ConfmlMeta object\n"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   756
        counter = 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   757
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   758
            tempstr += "\t%d: %s\n" % (counter, item.__str__())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   759
            counter += 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   760
        return tempstr 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   761
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   762
    def __cmp__(self, other):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   763
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   764
            for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   765
                if item != other.array[self.array.index(item)]:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   766
                    return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   767
        except:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   768
            return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   769
        return 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   770
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   771
    def append(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   772
        self.array.append(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   773
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   774
    def add(self, tag, value, ns=None, attributes=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   775
        self.array.append(ConfmlMetaProperty(tag, value, ns, attrs=attributes))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   776
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   777
    def get(self, tag, default=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   778
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   779
        Try to find the element by its tag in the meta elem array.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   780
        @param tag: the tag that is searched,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   781
        @param default: return the default value if the element is not found. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   782
        @return: the value of the ConfmlMetaProperty object if it is found. Default value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   783
        if element with tag is not found.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   784
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   785
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   786
            if item.tag == tag:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   787
                return item.value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   788
        return default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   789
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   790
    def replace(self, index, tag, value, ns=None, dict=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   791
        self.array[index] = ConfmlMetaProperty(tag, value, ns, attrs=dict)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   792
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   793
    def clear(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   794
        self.array = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   795
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   796
    def clone(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   797
        newMeta = ConfmlMeta()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   798
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   799
            newProp = ConfmlMetaProperty(item.tag, item.value, item.ns, attrs = item.attrs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   800
            newMeta.append(newProp)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   801
        return newMeta
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   802
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   803
    def find_by_tag(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   804
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   805
            if item.tag == value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   806
                return self.array.index(item)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   807
        return -1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   808
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   809
    def find_by_attribute(self, name, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   810
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   811
            if item.attrs.has_key(name) and item.attrs[name] == value: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   812
                return self.array.index(item)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   813
        return -1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   814
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   815
    def get_property_by_tag(self, tag):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   816
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   817
        Try to find the element by its tag in the meta elem array.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   818
        @param tag: the tag that is searched
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   819
        @return: the ConfmlMetaProperty object if it is found. None if element with tag is not found.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   820
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   821
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   822
            if item.tag == tag:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   823
                return item
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   824
        return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   825
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   826
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   827
class ConfmlDescription(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   828
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   829
    Confml description element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   830
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   831
    refname = "_desc"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   832
    def __init__(self, text=None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   833
        super(ConfmlDescription,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   834
        self.text = text or ''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   835
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   836
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   837
class ConfmlIcon(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   838
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   839
    Confml icon element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   840
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   841
    refname = "_icon"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   842
    def __init__(self, href='', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   843
        super(ConfmlIcon,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   844
        self.href = href
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   845
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   846
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   847
class ConfmlProperty(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   848
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   849
    Confml meta element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   850
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   851
    refname = "_property"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   852
    def __init__(self, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   853
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   854
        @param name=str: name string 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   855
        @param value=str: value for the property, string 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   856
        @param unit=str: unit of the property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   857
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   858
        super(ConfmlProperty,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   859
        self.name = kwargs.get('name',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   860
        self.value = kwargs.get('value',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   861
        self.unit = kwargs.get('unit',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   862
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   863
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   864
class ConfmlMetaProperty(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   865
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   866
    Confml meta property element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   867
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   868
    refname = "_metaproperty"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   869
    def __init__(self, tag, value = None, ns = None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   870
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   871
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   872
        super(ConfmlMetaProperty,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   873
        self.tag = tag
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   874
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   875
        self.ns = ns
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   876
        if kwargs.has_key("attrs") and kwargs["attrs"] != None:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   877
            self.attrs = dict(kwargs["attrs"])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   878
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   879
            self.attrs = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   880
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   881
    def __cmp__(self, other):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   882
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   883
            if self.tag != other.tag or self.value != other.value\
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   884
                or self.ns != other.ns or self.attrs != other.attrs:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   885
                return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   886
        except:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   887
            return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   888
        return 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   889
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   890
    def __str__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   891
        return "Tag: %s Value: %s Namespace: %s Attributes: % s" % (self.tag, self.value, self.ns, repr(self.attrs))         
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   892
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   893
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   894
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   895
class ConfmlLength(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   896
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   897
    Confml length element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   898
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   899
    refname = "_length"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   900
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   901
        super(ConfmlLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   902
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   903
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   904
class ConfmlMaxLength(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   905
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   906
    Confml max element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   907
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   908
    refname = "_maxLength"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   909
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   910
        super(ConfmlMaxLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   911
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   912
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   913
class ConfmlMinLength(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   914
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   915
    Confml min element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   916
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   917
    refname = "_minLength"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   918
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   919
        super(ConfmlMinLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   920
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   921
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   922
class ConfmlMinInclusive(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   923
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   924
    Confml minInclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   925
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   926
    refname = "_minInclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   927
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   928
        super(ConfmlMinInclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   929
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   930
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   931
class ConfmlMaxInclusive(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   932
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   933
    Confml minInclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   934
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   935
    refname = "_maxInclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   936
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   937
        super(ConfmlMaxInclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   938
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   939
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   940
class ConfmlMinExclusive(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   941
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   942
    Confml minExclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   943
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   944
    refname = "_minExclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   945
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   946
        super(ConfmlMinExclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   947
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   948
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   949
class ConfmlMaxExclusive(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   950
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   951
    Confml maxExclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   952
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   953
    refname = "_maxExclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   954
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   955
        super(ConfmlMaxExclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   956
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   957
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   958
class ConfmlPattern(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   959
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   960
    Confml pattern element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   961
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   962
    refname = "_pattern"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   963
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   964
        super(ConfmlPattern,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   965
        self.value = value   
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   966
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   967
class ConfmlTotalDigits(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   968
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   969
    Confml totalDigits element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   970
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   971
    refname = "_totalDigits"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   972
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   973
        super(ConfmlTotalDigits,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   974
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   975
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   976
def get_mapper(modelname):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   977
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   978
    Return a instance of appropriate mapper for given model.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   979
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   980
    mapmodule = __import__('cone.confml.mapping')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   981
    return mapmodule.confml.mapping.MAPPERS[modelname]()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   982