plcopen/VariableInfoCollector.py
changeset 1953 5736d25bb393
parent 1951 bbd1e1744c91
child 3750 f62625418bff
equal deleted inserted replaced
1952:0c20fc810d61 1953:5736d25bb393
     7 from plcopen.XSLTModelQuery import XSLTModelQuery, _StringValue, _BoolValue, _translate_args
     7 from plcopen.XSLTModelQuery import XSLTModelQuery, _StringValue, _BoolValue, _translate_args
     8 
     8 
     9 # -------------------------------------------------------------------------------
     9 # -------------------------------------------------------------------------------
    10 #                 Helpers object for generating pou var list
    10 #                 Helpers object for generating pou var list
    11 # -------------------------------------------------------------------------------
    11 # -------------------------------------------------------------------------------
       
    12 
    12 
    13 
    13 class _VariableInfos(object):
    14 class _VariableInfos(object):
    14     __slots__ = ["Name", "Class", "Option", "Location", "InitialValue",
    15     __slots__ = ["Name", "Class", "Option", "Location", "InitialValue",
    15                  "Edit", "Documentation", "Type", "Tree", "Number"]
    16                  "Edit", "Documentation", "Type", "Tree", "Number"]
    16 
    17 
    63 class VariableInfoCollector(XSLTModelQuery):
    64 class VariableInfoCollector(XSLTModelQuery):
    64     def __init__(self, controller):
    65     def __init__(self, controller):
    65         XSLTModelQuery.__init__(self,
    66         XSLTModelQuery.__init__(self,
    66                                 controller,
    67                                 controller,
    67                                 "variables_infos.xslt",
    68                                 "variables_infos.xslt",
    68                                 [(name, self.FactoryCaller(name)) 
    69                                 [(name, self.FactoryCaller(name))
    69                                     for name in [
    70                                  for name in [
    70                                         "SetType",
    71                                      "SetType",
    71                                         "AddDimension",
    72                                      "AddDimension",
    72                                         "AddTree",
    73                                      "AddTree",
    73                                         "AddVarToTree",
    74                                      "AddVarToTree",
    74                                         "AddVariable"]])
    75                                      "AddVariable"]])
    75 
    76 
    76     def FactoryCaller(self, funcname):
    77     def FactoryCaller(self, funcname):
    77         def CallFactory(*args):
    78         def CallFactory(*args):
    78             return getattr(self.factory, funcname)(*args)
    79             return getattr(self.factory, funcname)(*args)
    79         return CallFactory
    80         return CallFactory
    82         self.factory = VariablesInfosFactory(variables)
    83         self.factory = VariablesInfosFactory(variables)
    83         self._process_xslt(root, debug, tree=str(tree))
    84         self._process_xslt(root, debug, tree=str(tree))
    84         res = self.factory
    85         res = self.factory
    85         self.factory = None
    86         self.factory = None
    86         return res
    87         return res
    87