configurationengine/source/cone/confml/model.py
author m2lahtel
Thu, 21 Oct 2010 16:36:53 +0300
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
permissions -rw-r--r--
Updated to version 1.2.14
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
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    24
import sys
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    25
import re
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
from cone.public import api, exceptions, container, utils
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
class ConfmlElement(api.Base):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    29
    def __init__(self, ref="", **kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    30
        super(ConfmlElement,self).__init__(ref, **kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    31
        self.lineno = None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    32
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
    def _get_mapper(self,modelname):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
        Return a instance of appropriate mapper for given model.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
        mapmodule = __import__('cone.confml.mapping')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
        return mapmodule.confml.mapping.MAPPERS[modelname]()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
    def set_desc(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
        self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
    desc = property(get_desc,set_desc,del_desc)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    57
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    58
class ConfmlData(api.Data):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    59
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    60
    The data element can contain any data setting for a feature. The data element can be 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    61
    a value definition for any type of data. It basically just links some data to a feature. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    62
    The default Data attribute is 'data', but it can be any string. For example current use case 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    63
    is 'rfs'.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    64
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    65
    def __init__(self, **kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    66
        super(ConfmlData,self).__init__(**kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    67
        self.lineno = None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    68
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
class ConfmlConfiguration(ConfmlElement, api.Configuration):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
    Confml configuration class. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
    def __init__(self,ref="", **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
        super(ConfmlConfiguration,self).__init__(ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
        if kwargs.get('meta'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
            self.meta = kwargs.get('meta')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
            self.desc = kwargs.get('desc')
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
    79
        if kwargs.get('extensions'):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
    80
            self.extensions = kwargs.get('extensions')
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    82
    def _view_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    83
        return ConfmlView
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    84
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    85
    def _feature_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    86
        return ConfmlFeature
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    87
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    88
    def _configuration_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
    89
        return ConfmlConfiguration
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
    def get_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
        @return: The description of the Configuration.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
            desc = getattr(self,ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
            return desc.text
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
    def set_desc(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
        self._add(ConfmlDescription(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
    def del_desc(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
            self._remove(ConfmlDescription.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
            pass
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
    """ The description as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
    desc = property(get_desc,set_desc,del_desc)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
    def get_meta(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
        """
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   115
        @return: The meta element of the Configuration.
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
            meta = getattr(self,ConfmlMeta.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
            return meta
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
    def set_meta(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
        self._add(ConfmlMeta(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
    def del_meta(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(ConfmlMeta.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
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
    """ The meta element as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
    meta = property(get_meta,set_meta,del_meta)
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   134
    
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   135
    def get_extensions(self): 
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   136
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   137
        @return: The extension element of the Configuration.
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   138
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   139
        try:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   140
            extensions = getattr(self,ConfmlExtensions.refname)
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   141
            return extensions
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   142
        except AttributeError:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   143
            return None
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   144
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   145
    def set_extensions(self,value): 
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   146
        self._add(ConfmlExtensions(value))
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   147
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   148
    def del_extensions(self): 
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   149
        try:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   150
            self._remove(ConfmlExtensions.refname)
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   151
        except exceptions.NotFound:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   152
            pass
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   153
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   154
    """ The extensions element as a property """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   155
    extensions = property(get_extensions,set_extensions,del_extensions)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   157
class ConfmlSettingAttributes(ConfmlElement):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
    """
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   159
    Abstract base class for setting attributes. This is used as 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   160
    a base in actual ConfmlSetting and ConfmlFeatureLink.
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
    def __init__(self, ref,**kwargs):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   163
        super(ConfmlSettingAttributes,self).__init__(ref,**kwargs)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
        if kwargs.get('desc'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
            self.desc = kwargs.get('desc')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
        if kwargs.get('minOccurs'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
            self.minOccurs = kwargs.get('minOccurs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
        if kwargs.get('maxOccurs'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
            self.maxOccurs = kwargs.get('maxOccurs')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        if kwargs.get('maxLength'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
            self.maxLength = kwargs.get('maxLength')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
        if kwargs.get('minLength'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
            self.minLength = kwargs.get('minLength')
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   174
        self.mapKey = kwargs.get('mapKey')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   175
        self.mapValue = kwargs.get('mapValue')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   176
        self.displayName = kwargs.get('displayName')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   177
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
        self.readOnly = kwargs.get('readOnly',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
        self.constraint = kwargs.get('constraint',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
        self.required = kwargs.get('required',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
        self.relevant = kwargs.get('relevant',None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
        return api.ValueRe('.*')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
    def get_maxlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
            return getattr(self,ConfmlMaxLength.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
    def set_maxlength(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
        self._add(ConfmlMaxLength(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
    def del_maxlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
            self._remove(ConfmlMaxLength.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
            pass
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   204
    """ The maxLength as a property """
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
    maxLength = property(get_maxlength,set_maxlength,del_maxlength)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
    def get_minlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
            return getattr(self,ConfmlMinLength.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
    def set_minlength(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
        self._add(ConfmlMinLength(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
    def del_minlength(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
            self._remove(ConfmlMinLength.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
            pass
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   221
    """ The minLength as a property """
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
    minLength = property(get_minlength,set_minlength,del_minlength)
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   223
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   224
    def get_length(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   225
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   226
            return getattr(self,ConfmlLength.refname).value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   227
        except AttributeError:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   228
            return None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   229
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   230
    def set_length(self,value): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   231
        self._add(ConfmlLength(value))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   232
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   233
    def del_length(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   234
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   235
            self._remove(ConfmlLength.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   236
        except exceptions.NotFound:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   237
            pass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   238
    """ The length as a property """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   239
    length = property(get_length,set_length,del_length)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
    def get_minInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
            return getattr(self,ConfmlMinInclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
    def set_minInclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
        self._add(ConfmlMinInclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
    def del_minInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
            self._remove(ConfmlMinInclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
    """ The minInclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
    minInclusive = property(get_minInclusive,set_minInclusive,del_minInclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
    def get_maxInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
            return getattr(self,ConfmlMaxInclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
    def set_maxInclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
        self._add(ConfmlMaxInclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
    def del_maxInclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
            self._remove(ConfmlMaxInclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   271
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   272
    """ The minInclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   273
    maxInclusive = property(get_maxInclusive,set_maxInclusive,del_maxInclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   274
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   275
    def get_minExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   276
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   277
            return getattr(self,ConfmlMinExclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   278
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   279
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   280
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   281
    def set_minExclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   282
        self._add(ConfmlMinExclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   283
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   284
    def del_minExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   285
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   286
            self._remove(ConfmlMinExclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   287
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   288
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   289
    """ The minExclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   290
    minExclusive = property(get_minExclusive,set_minExclusive,del_minExclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   291
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   292
    def get_maxExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   293
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   294
            return getattr(self,ConfmlMaxExclusive.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   295
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   296
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   297
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   298
    def set_maxExclusive(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   299
        self._add(ConfmlMaxExclusive(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   300
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   301
    def del_maxExclusive(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   302
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   303
            self._remove(ConfmlMaxExclusive.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   304
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   305
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   306
    """ The maxExclusive as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   307
    maxExclusive = property(get_maxExclusive,set_maxExclusive,del_maxExclusive)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   308
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   309
    def get_pattern(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   310
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   311
            return getattr(self,ConfmlPattern.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   312
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   313
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   314
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   315
    def set_pattern(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   316
        self._add(ConfmlPattern(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   317
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   318
    def del_pattern(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   319
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   320
            self._remove(ConfmlPattern.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   321
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   322
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   323
    """ The pattern as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   324
    pattern = property(get_pattern,set_pattern,del_pattern)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   325
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   326
    def get_totalDigits(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   327
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   328
            return getattr(self,ConfmlTotalDigits.refname).value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   329
        except AttributeError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   330
            return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   331
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   332
    def set_totalDigits(self,value): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   333
        self._add(ConfmlTotalDigits(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   334
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   335
    def del_totalDigits(self): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   336
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   337
            self._remove(ConfmlTotalDigits.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   338
        except exceptions.NotFound:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   339
            pass     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   340
    """ The totalDigits as a property """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   341
    totalDigits = property(get_totalDigits,set_totalDigits,del_totalDigits)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   342
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   343
    @property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   344
    def options(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   345
        optdict = {}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   346
        for opt in self._objects(type=api.Option):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   347
            optdict[opt.value] = opt
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   348
        return  optdict
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   349
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   350
    @property
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   351
    def properties(self):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   352
        propdict = {}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   353
        for prop in self._objects(type=api.Property):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   354
            propdict[prop.name] = prop
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   355
        return  propdict
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   356
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   357
    def get_rfs(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   358
        return super(ConfmlSettingAttributes,self).get_value('rfs')
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   359
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   360
    def set_rfs(self, value):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   361
        super(ConfmlSettingAttributes,self).set_value('rfs',value)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   362
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   363
    def del_rfs(self):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   364
        super(ConfmlSettingAttributes,self).del_value('rfs')
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   365
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   366
    rfs = property(get_rfs,set_rfs,del_rfs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   367
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   368
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   369
class ConfmlGroup(ConfmlElement, api.Group):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   370
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   371
    Confml view.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   372
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   373
    def __init__(self, ref="", **kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   374
        super(ConfmlGroup,self).__init__(ref,**kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   375
        if kwargs.get('icon'):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   376
            self.icon = kwargs.get('icon')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   377
        if kwargs.get('desc'):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   378
            self.desc = kwargs.get('desc')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   379
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   380
    def _group_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   381
        return ConfmlGroup
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   382
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   383
    def _featurelink_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   384
        return ConfmlFeatureLink
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   385
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   386
    def get_icon(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   387
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   388
            icon = getattr(self,ConfmlIcon.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   389
            return icon.href
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   390
        except AttributeError:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   391
            return None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   392
    def set_icon(self,value): self._add(ConfmlIcon(value))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   393
    def del_icon(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   394
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   395
            self._remove(ConfmlIcon.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   396
        except exceptions.NotFound:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   397
            pass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   398
    """ The icon as a property """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   399
    icon = property(get_icon,set_icon,del_icon)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   400
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   401
    def get_desc(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   402
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   403
            desc = getattr(self,ConfmlDescription.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   404
            return desc.text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   405
        except AttributeError:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   406
            return None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   407
    def set_desc(self,value): self._add(ConfmlDescription(value))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   408
    def del_desc(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   409
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   410
            self._remove(ConfmlDescription.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   411
        except exceptions.NotFound:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   412
            pass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   413
    """ The description as a property """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   414
    desc = property(get_desc,set_desc,del_desc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   415
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   416
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   417
class ConfmlView(api.View, ConfmlGroup):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   418
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   419
    Confml view.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   420
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   421
    def __init__(self, ref="", **kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   422
        super(ConfmlView,self).__init__(ref,**kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   423
        if kwargs.get('desc'):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   424
            self.desc = kwargs.get('desc')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   425
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   426
    def get_desc(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   427
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   428
            desc = getattr(self,ConfmlDescription.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   429
            return desc.text
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   430
        except AttributeError:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   431
            return None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   432
    def set_desc(self,value): self._add(ConfmlDescription(value))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   433
    def del_desc(self): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   434
        try:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   435
            self._remove(ConfmlDescription.refname)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   436
        except exceptions.NotFound:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   437
            pass
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   438
    """ The description as a property """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   439
    desc = property(get_desc,set_desc,del_desc)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   440
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   441
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   442
class ConfmlFeature(ConfmlElement, api.Feature):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   443
    def _feature_class(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   444
        return ConfmlSetting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   445
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   446
class ConfmlSetting(ConfmlSettingAttributes, api.Feature):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   447
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   448
    Confml setting class. Attribute 'options' contains options of this setting.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   449
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   450
    supported_types = ['int',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   451
                       'string',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   452
                       'boolean',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   453
                       'selection']
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   454
    def __init__(self, ref,**kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   455
        super(ConfmlSetting,self).__init__(ref,**kwargs)
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   456
        self.extensionAttributes = []
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   457
        self.type = kwargs.get('type',None)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   458
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   459
    def get_value_cast(self, value, attr=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   460
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   461
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   462
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   463
        @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
   464
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   465
        if not attr or attr == 'data':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   466
            return self.get_data_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   467
        elif attr == 'rfs':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   468
            return self.get_rfs_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   469
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   470
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   471
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   472
    def set_value_cast(self, value, attr=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   473
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   474
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   475
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   476
        @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
   477
        """
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   478
        # Add a exception case for None value, because the data casting will always fail for it
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   479
        if value == None:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   480
            return value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   481
        
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   482
        if not attr or attr == 'data':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   483
            return self.set_data_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   484
        elif attr == 'rfs':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   485
            return self.set_rfs_cast(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   486
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   487
            return value
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   488
        
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   489
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   490
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   491
        A function to perform the data type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   492
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   493
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   494
        return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   495
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   496
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   497
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   498
        A function to perform the data type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   499
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   500
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   501
        return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   502
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   503
    def get_rfs_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   504
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   505
        A function to perform the rfs type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   506
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   507
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   508
        if value == 'true':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   509
            return True
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   510
        elif value == 'false':
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   511
            return False
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   512
        else: # otherwise this is an invalid rfs value. Should it report an error?
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   513
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   514
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   515
    def set_rfs_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   516
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   517
        A function to perform the rfs type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   518
        @param value: the value to cast 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   519
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   520
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   521
            return 'true'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   522
        else: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   523
            return 'false'
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   524
        
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   525
    def set_extension_attributes(self, attributes):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   526
        self.extensionAttributes = attributes
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   527
        
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   528
    def get_extension_attributes(self):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   529
        return self.extensionAttributes
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   530
    
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   531
    def add_extension_attribute(self, attribute):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   532
        self.extensionAttributes.append(attribute)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   533
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   534
class ConfmlStringSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   535
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   536
    Confml setting class for integer type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   537
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   538
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   539
        kwargs['type'] = 'string'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   540
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   541
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   542
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   543
class ConfmlIntSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   544
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   545
    Confml setting class for integer type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   546
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   547
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   548
        kwargs['type'] = 'int'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   549
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   550
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   551
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   552
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   553
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   554
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   555
        return api.ValueRange(0,sys.maxint)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   556
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   557
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   558
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   559
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   560
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   561
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   562
            try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   563
                return int(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   564
            except ValueError:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   565
                return int(value, 16)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   566
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   567
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   568
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   569
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   570
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   571
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   572
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   573
        return str(int(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   574
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   575
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   576
class ConfmlRealSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   577
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   578
    Confml setting class for real type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   579
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   580
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   581
        kwargs['type'] = 'real'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   582
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   583
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   584
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   585
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   586
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   587
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   588
        return api.ValueRange(0,float(sys.maxint))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   589
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   590
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   591
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   592
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   593
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   594
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   595
            return float(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   596
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   597
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   598
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   599
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   600
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   601
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   602
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   603
        return str(float(value))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   604
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   605
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   606
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   607
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   608
class ConfmlBooleanSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   609
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   610
    Confml setting class for boolean type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   611
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   612
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   613
        kwargs['type'] = 'boolean'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   614
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   615
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   616
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   617
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   618
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   619
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   620
        return api.ValueSet([True,False])
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   621
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   622
    def get_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   623
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   624
        A function to perform the value type casting in get operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   625
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   626
        if value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   627
            if value in ('true', '1'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   628
                return True
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   629
            else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   630
                return False
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   631
        else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   632
            return value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   633
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   634
    def set_data_cast(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   635
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   636
        A function to perform the value type casting in the set operation  
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   637
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   638
        if isinstance(value, basestring):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   639
            if value in ('false', '0'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   640
                return 'false'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   641
            elif value in ('true', '1'):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   642
                return 'true'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   643
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   644
        return str(bool(value)).lower()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   645
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   646
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   647
class ConfmlSelectionSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   648
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   649
    Confml setting class for boolean type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   650
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   651
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   652
        kwargs['type'] = 'selection'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   653
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   654
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   655
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   656
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   657
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   658
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   659
        return api.Feature.get_valueset(self)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   660
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   661
class ConfmlMultiSelectionSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   662
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   663
    Confml setting class for multiSelection type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   664
    """
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   665
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   666
    # Pattern for checking whether a data value should be interpreted
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   667
    # in the old style (e.g. '"opt1" "opt2" "opt3"')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   668
    OLD_STYLE_DATA_PATTERN = re.compile(r'"[^"]*([^"]*" ")*[^"]*"')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   669
    
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   670
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   671
        kwargs['type'] = 'multiSelection'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   672
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   673
        
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   674
    def add_data(self, data):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   675
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   676
        Add a data value.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   677
        @param data: A Data object  
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   678
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   679
        # If there are existing data objects added to the proxy, and they
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   680
        # are not in the same DataContainer (ConfML data section), change the
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   681
        # policy to replace
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   682
        if self.dataproxy.datas.get(data.attr):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   683
            existing_data_obj = self.dataproxy.datas[data.attr][-1]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   684
            existing_obj_parent = existing_data_obj._find_parent_or_default(type=api.DataContainer)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   685
            new_obj_parent = data._find_parent_or_default(type=api.DataContainer)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   686
            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   687
            if existing_obj_parent is not new_obj_parent:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   688
                self.dataproxy.datas[data.attr] = []
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   689
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   690
        self.dataproxy._add_data(data)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   691
    
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   692
    def get_valueset(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   693
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   694
        Get the ValueSet object for this feature, that has the list of available values.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   695
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   696
        return api.Feature.get_valueset(self)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   697
    
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   698
    def convert_data_to_value(self, data_objects, cast=True, attr=None):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   699
        if len(data_objects) == 1:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   700
            d = data_objects[0]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   701
            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   702
            # Special handling for cases where the data is in the old format
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   703
            # (pre-2.88 ConfML spec)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   704
            if d.value is not None:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   705
                if self.OLD_STYLE_DATA_PATTERN.match(d.value):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   706
                    return tuple([v.rstrip('"').lstrip('"') for v in d.value.split('" "')])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   707
            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   708
            # Single data object with empty="true" means that nothing is selected
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   709
            if d.empty: return ()
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   710
        
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   711
        # Read each data value (or name-ID mapped value) into result
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   712
        result = []
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   713
        for data_obj in data_objects:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   714
            if data_obj.map:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   715
                value = self._resolve_name_id_mapped_value(data_obj.map, cast_value=cast)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   716
            else:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   717
                value = data_obj.value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   718
            result.append(value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   719
        result = utils.distinct_array(result)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   720
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   721
        # Handle None in the result (data element with no text data)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   722
        if None in result:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   723
            # If the empty string is a valid option, change the None to that,
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   724
            # otherwise ignore
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   725
            index = result.index(None)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   726
            if '' in self.get_valueset():   result[index] = ''
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   727
            else:                           del result[index]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   728
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   729
        return tuple(result)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   730
    
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   731
    def convert_value_to_data(self, value, attr=None):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   732
        if not isinstance(value, (types.ListType, types.TupleType, types.NoneType)):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   733
            raise ValueError("Only list, tuple and None types are allowed.")
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   734
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   735
        if value:   return [api.Data(fqr=self.fqr, value=v, attr=attr) for v in value]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   736
        else:       return [api.Data(fqr=self.fqr, empty=True, attr=attr)]
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   737
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   738
class ConfmlDateSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   739
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   740
    Confml setting class for date type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   741
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   742
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   743
        kwargs['type'] = 'date'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   744
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   745
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   746
class ConfmlTimeSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   747
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   748
    Confml setting class for time type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   749
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   750
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   751
        kwargs['type'] = 'time'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   752
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   753
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   754
class ConfmlDateTimeSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   755
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   756
    Confml setting class for date-time type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   757
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   758
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   759
        kwargs['type'] = 'dateTime'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   760
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   761
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   762
class ConfmlHexBinarySetting(ConfmlSetting):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   763
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   764
    Confml setting class for hex-binary type.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   765
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   766
    def __init__(self, ref,**kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   767
        kwargs['type'] = 'hexBinary'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   768
        ConfmlSetting.__init__(self,ref,**kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   769
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   770
    def get_valueset(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   771
        return api.ValueRe(r'^([0123456789ABCDEF]{2})*$')
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   772
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   773
    def get_data_cast(self, value):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   774
        value = value or '' # Handle None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   775
        if value not in self.get_valueset():
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   776
            raise ValueError("Cannot convert value %r of setting '%s' into binary data: Not a valid hex string", value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   777
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   778
        temp = []
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   779
        for i in xrange(len(value) / 2):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   780
            start = i * 2
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   781
            end   = start + 2 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   782
            temp.append(chr(int(value[start:end], 16)))
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   783
        return ''.join(temp)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   784
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   785
    def set_data_cast(self, value):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   786
        return ''.join(['%02X' % ord(c) for c in value])
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   787
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   788
class ConfmlDurationSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   789
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   790
    Confml setting class for date type.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   791
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   792
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   793
        kwargs['type'] = 'duration'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   794
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   795
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   796
class ConfmlSequenceSetting(api.FeatureSequence,ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   797
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   798
    Confml setting class. Attribute 'options' contains options of this setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   799
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   800
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   801
        ConfmlSetting.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   802
        api.FeatureSequence.__init__(self,ref,**kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   803
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   804
class ConfmlFileSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   805
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   806
    Confml file setting class.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   807
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   808
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   809
        kwargs['type'] = 'file'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   810
        ConfmlSetting.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   811
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   812
        The file element always includes localPath and targetPath child elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   813
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   814
        self.add_feature(ConfmlLocalPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   815
        self.add_feature(ConfmlTargetPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   816
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   817
class ConfmlFolderSetting(ConfmlSetting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   818
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   819
    Confml folder setting class.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   820
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   821
    def __init__(self, ref,**kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   822
        kwargs['type'] = 'folder'
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   823
        ConfmlSetting.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   824
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   825
        The folder element always includes localPath and targetPath child elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   826
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   827
        self.add_feature(ConfmlLocalPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   828
        self.add_feature(ConfmlTargetPath())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   829
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   830
class ConfmlLocalPath(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   831
    """
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   832
    Confml file class. Attribute setting. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   833
    The localPath "name" is always the same as its ref 'localPath'
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   834
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   835
    def __init__(self, ref='localPath', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   836
        kwargs['type'] = 'string'
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   837
        kwargs['name'] = ref
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   838
        ConfmlElement.__init__(self, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   839
        api.Feature.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   840
        self.readOnly = kwargs.get('readOnly', None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   841
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   842
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   843
class ConfmlTargetPath(ConfmlElement, api.Feature):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   844
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   845
    Confml file class. Attribute setting.
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   846
    The targetPath "name" is always the same as its ref 'targetPath'
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   847
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   848
    def __init__(self, ref='targetPath', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   849
        kwargs['type'] = 'string'
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   850
        kwargs['name'] = ref
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   851
        ConfmlElement.__init__(self, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   852
        api.Feature.__init__(self, ref, **kwargs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   853
        self.readOnly = kwargs.get('readOnly', None)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   854
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   855
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   856
class ConfmlFeatureLink(ConfmlSettingAttributes, api.FeatureLink):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   857
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   858
    ConfmlFeatureLink object is the setting reference object inside confml 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   859
    group / view. It can populate the actual FeatureProxy objects under the
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   860
    particular group / view object.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   861
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   862
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   863
    """ the override_attributes explicitly states which feature link attributes can be overridden """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   864
    override_attributes = ['name', 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   865
                           'desc', 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   866
                           'minLength',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   867
                           'maxLength',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   868
                           'minOccurs',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   869
                           'maxOccurs',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   870
                           'minInclusive',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   871
                           'maxInclusive',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   872
                           'minExclusive',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   873
                           'maxExclusive',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   874
                           'pattern',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   875
                           'totalDigits',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   876
                           'options',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   877
                           'properties',
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   878
                           'readOnly'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   879
                           ]
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   880
    def __init__(self, ref,**kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   881
        ConfmlSettingAttributes.__init__(self, ref,**kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   882
        api.FeatureLink.__init__(self, ref, **kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   883
        self.type = kwargs.get('type',None)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   884
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   885
class ConfmlMeta(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   886
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   887
    Confml meta element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   888
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   889
    refname = "_meta"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   890
    def __init__(self, array=None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   891
        super(ConfmlMeta,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   892
        self.array  = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   893
        if array:            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   894
            self.array += array
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   895
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   896
    def __getitem__(self, key):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   897
        return self.array[key]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   898
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   899
    def __delitem__(self, key):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   900
        del self.array[key]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   901
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   902
    def __setitem__(self, key, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   903
        self.array[key] = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   904
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   905
    def __len__(self):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   906
        return len(self.array)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   907
    
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   908
    def __str__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   909
        tempstr = "ConfmlMeta object\n"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   910
        counter = 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   911
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   912
            tempstr += "\t%d: %s\n" % (counter, item.__str__())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   913
            counter += 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   914
        return tempstr 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   915
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   916
    def __cmp__(self, other):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   917
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   918
            for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   919
                if item != other.array[self.array.index(item)]:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   920
                    return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   921
        except:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   922
            return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   923
        return 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   924
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   925
    def append(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   926
        self.array.append(value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   927
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   928
    def add(self, tag, value, ns=None, attributes=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   929
        self.array.append(ConfmlMetaProperty(tag, value, ns, attrs=attributes))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   930
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   931
    def get(self, tag, default=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   932
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   933
        Try to find the element by its tag in the meta elem array.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   934
        @param tag: the tag that is searched,
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   935
        @param default: return the default value if the element is not found. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   936
        @return: the value of the ConfmlMetaProperty object if it is found. Default value 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   937
        if element with tag is not found.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   938
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   939
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   940
            if item.tag == tag:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   941
                return item.value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   942
        return default
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   943
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   944
    def replace(self, index, tag, value, ns=None, dict=None):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   945
        self.array[index] = ConfmlMetaProperty(tag, value, ns, attrs=dict)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   946
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   947
    def update(self, data):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   948
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   949
        Update this the ConfmlMeta object meta with the given data.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   950
        @param data: The input ConfmlMeta data to update for this object
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   951
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   952
        if data:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   953
            for property in data.array:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   954
                self.set_property_by_tag(property.tag, property.value, property.ns, property.attrs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   955
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   956
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   957
    def clear(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   958
        self.array = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   959
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   960
    def clone(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   961
        newMeta = ConfmlMeta()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   962
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   963
            newProp = ConfmlMetaProperty(item.tag, item.value, item.ns, attrs = item.attrs)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   964
            newMeta.append(newProp)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   965
        return newMeta
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   966
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   967
    def find_by_tag(self, value):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   968
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   969
            if item.tag == value:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   970
                return self.array.index(item)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   971
        return -1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   972
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   973
    def find_by_attribute(self, name, value):
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   974
        for item in self.array:            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   975
            if item.attrs.has_key(name) and item.attrs[name] == value:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   976
                return self.array.index(item)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   977
        return -1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   978
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   979
    def get_property_by_tag(self, tag, attrs={}):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   980
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   981
        Try to find the element by its tag in the meta elem array.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   982
        @param tag: the tag that is searched
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   983
        @return: the ConfmlMetaProperty object if it is found. None if element with tag is not found.
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   984
        """ 
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   985
        for item in self.array:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   986
            if item.tag == tag:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   987
                if not item.attrs or (item.attrs.get("name", None) == attrs.get("name", None)):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   988
                    return item
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   989
        return None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   990
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   991
    def set_property_by_tag(self, tag, value, ns=None, attributes=None):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   992
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   993
        Try to find the element by its tag and set it the meta elem array. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   994
        This will either create a new element to the meta or replace first 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   995
        encountered elem in array. 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   996
        @param tag: the tag that is searched
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   997
        @return: the ConfmlMetaProperty object if it is found. None if element with tag is not found.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   998
        """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
   999
                
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1000
        if self.get_property_by_tag(tag, attributes):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1001
            property = self.get_property_by_tag(tag, attributes) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1002
            property.value = value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1003
            property.attrs = attributes or {}
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1004
        else:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1005
            self.add(tag, value, ns, attributes)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1006
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1007
class ConfmlDescription(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1008
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1009
    Confml description element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1010
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1011
    refname = "_desc"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1012
    def __init__(self, text=None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1013
        super(ConfmlDescription,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1014
        self.text = text or ''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1015
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1016
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1017
class ConfmlIcon(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1018
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1019
    Confml icon element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1020
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1021
    refname = "_icon"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1022
    def __init__(self, href='', **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1023
        super(ConfmlIcon,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1024
        self.href = href
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1025
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1026
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1027
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1028
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1029
class ConfmlMetaProperty(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1030
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1031
    Confml meta property element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1032
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1033
    refname = "_metaproperty"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1034
    def __init__(self, tag, value = None, ns = None, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1035
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1036
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1037
        super(ConfmlMetaProperty,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1038
        self.tag = tag
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1039
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1040
        self.ns = ns
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1041
        self.attrs = dict(kwargs.get('attrs') or {})
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1042
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1043
    def __cmp__(self, other):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1044
        try:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1045
            if self.tag != other.tag or self.value != other.value\
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1046
                or self.ns != other.ns or self.attrs != other.attrs:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1047
                return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1048
        except:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1049
            return 1
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1050
        return 0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1051
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1052
    def __str__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1053
        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
  1054
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1055
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1056
class ConfmlNumericValue(api.Base):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1057
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1058
    Confml base class for all float type properties.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1059
    Performs a simple value casting from string to int in value setting.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1060
    """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1061
    def __init__(self, ref="", **kwargs):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1062
        super(ConfmlNumericValue,self).__init__(ref, **kwargs)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1063
        self._value = None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1064
        
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1065
    def get_value(self): return self._value
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1066
    def del_value(self): self._value = None
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1067
    def set_value(self, value): 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1068
        if utils.is_float(value):
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1069
            self._value = float(value) 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1070
        else:
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1071
            self._value = int(value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1072
    """ The value as a property """
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1073
    value = property(get_value,set_value,del_value)
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1074
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1075
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1076
class ConfmlLength(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1077
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1078
    Confml length element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1079
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1080
    refname = "_length"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1081
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1082
        super(ConfmlLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1083
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1084
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1085
class ConfmlMaxLength(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1086
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1087
    Confml max element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1088
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1089
    refname = "_maxLength"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1090
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1091
        super(ConfmlMaxLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1092
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1093
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1094
class ConfmlMinLength(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1095
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1096
    Confml min element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1097
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1098
    refname = "_minLength"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1099
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1100
        super(ConfmlMinLength,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1101
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1102
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1103
class ConfmlMinInclusive(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1104
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1105
    Confml minInclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1106
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1107
    refname = "_minInclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1108
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1109
        super(ConfmlMinInclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1110
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1111
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1112
class ConfmlMaxInclusive(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1113
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1114
    Confml minInclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1115
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1116
    refname = "_maxInclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1117
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1118
        super(ConfmlMaxInclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1119
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1120
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1121
class ConfmlMinExclusive(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1122
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1123
    Confml minExclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1124
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1125
    refname = "_minExclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1126
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1127
        super(ConfmlMinExclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1128
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1129
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1130
class ConfmlMaxExclusive(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1131
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1132
    Confml maxExclusive element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1133
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1134
    refname = "_maxExclusive"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1135
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1136
        super(ConfmlMaxExclusive,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1137
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1138
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1139
class ConfmlPattern(api.Base):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1140
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1141
    Confml pattern element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1142
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1143
    refname = "_pattern"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1144
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1145
        super(ConfmlPattern,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1146
        self.value = value   
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1147
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents: 0
diff changeset
  1148
class ConfmlTotalDigits(ConfmlNumericValue):
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1149
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1150
    Confml totalDigits element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1151
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1152
    refname = "_totalDigits"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1153
    def __init__(self, value, **kwargs):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1154
        super(ConfmlTotalDigits,self).__init__(self.refname)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1155
        self.value = value
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1156
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1157
def get_mapper(modelname):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1158
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1159
    Return a instance of appropriate mapper for given model.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1160
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1161
    mapmodule = __import__('cone.confml.mapping')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1162
    return mapmodule.confml.mapping.MAPPERS[modelname]()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
  1163
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1164
class ConfmlExtensions(api.Base):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1165
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1166
    Confml extensions element
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1167
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1168
    refname = "_extensions"
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1169
    def __init__(self,  **kwargs):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1170
        super(ConfmlExtensions,self).__init__(self.refname)
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1171
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1172
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1173
class ConfmlExtension(api.Base):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1174
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1175
    Confml generic subelement of extensions element
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1176
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1177
    refname = "_extension"
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1178
    def __init__(self, tag, value = None, ns = None, **kwargs):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1179
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1180
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1181
        super(ConfmlExtension,self).__init__(self.refname)
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1182
        self.tag = tag
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1183
        self.value = value
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1184
        self.ns = ns
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1185
        self.attrs = dict(kwargs.get('attrs') or {})
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1186
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1187
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1188
    def __cmp__(self, other):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1189
        try:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1190
            if self.tag != other.tag or self.value != other.value\
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1191
                or self.ns != other.ns or self.attrs != other.attrs:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1192
                return 1
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1193
        except:
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1194
            return 1
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1195
        return 0
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1196
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1197
    def __str__(self):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1198
        return "Tag: %s Value: %s Namespace: %s Attributes: % s" % (self.tag, self.value, self.ns, repr(self.attrs))         
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1199
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1200
class ConfmlExtensionAttribute():
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1201
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1202
    Confml generic extension attribute
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1203
    """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1204
    def __init__(self, name, value = None, ns = None, **kwargs):
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1205
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1206
        """
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1207
        self.name = name
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1208
        self.value = value
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1209
        self.ns = ns
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1210
        self.attrs = dict(kwargs.get('attrs') or {})
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
  1211