480 |
480 |
481 def removedataType(self, name): |
481 def removedataType(self, name): |
482 self.types.removedataTypeElement(name) |
482 self.types.removedataTypeElement(name) |
483 setattr(cls, "removedataType", removedataType) |
483 setattr(cls, "removedataType", removedataType) |
484 |
484 |
485 def getpous(self, exclude=None, filter=[]): |
485 def getpous(self, exclude=None, filter=None): |
|
486 filter = [] if filter is None else filter |
486 return self.xpath( |
487 return self.xpath( |
487 "ppx:types/ppx:pous/ppx:pou%s%s" % |
488 "ppx:types/ppx:pous/ppx:pou%s%s" % |
488 (("[@name!='%s']" % exclude) if exclude is not None else '', |
489 (("[@name!='%s']" % exclude) if exclude is not None else '', |
489 ("[%s]" % " or ".join( |
490 ("[%s]" % " or ".join( |
490 map(lambda x: "@pouType='%s'" % x, filter))) |
491 map(lambda x: "@pouType='%s'" % x, filter))) |
613 |
614 |
614 def GetEnumeratedDataTypeValues(self): |
615 def GetEnumeratedDataTypeValues(self): |
615 return [value.getname() for value in enumerated_values_xpath(self)] |
616 return [value.getname() for value in enumerated_values_xpath(self)] |
616 setattr(cls, "GetEnumeratedDataTypeValues", GetEnumeratedDataTypeValues) |
617 setattr(cls, "GetEnumeratedDataTypeValues", GetEnumeratedDataTypeValues) |
617 |
618 |
618 def Search(self, criteria, parent_infos=[]): |
619 def Search(self, criteria, parent_infos=None): |
|
620 parent_infos = [] if parent_infos is None else parent_infos |
619 result = self.types.Search(criteria, parent_infos) |
621 result = self.types.Search(criteria, parent_infos) |
620 for configuration in self.instances.configurations.getconfiguration(): |
622 for configuration in self.instances.configurations.getconfiguration(): |
621 result.extend(configuration.Search(criteria, parent_infos)) |
623 result.extend(configuration.Search(criteria, parent_infos)) |
622 return result |
624 return result |
623 setattr(cls, "Search", Search) |
625 setattr(cls, "Search", Search) |
754 result = address_model.match(var_address) |
756 result = address_model.match(var_address) |
755 if result is not None: |
757 if result is not None: |
756 variables.remove(variables[i]) |
758 variables.remove(variables[i]) |
757 |
759 |
758 |
760 |
759 def _SearchInConfigurationResource(self, criteria, parent_infos=[]): |
761 def _SearchInConfigurationResource(self, criteria, parent_infos=None): |
|
762 parent_infos = [] if parent_infos is None else parent_infos |
760 search_result = _Search([("name", self.getname())], criteria, parent_infos) |
763 search_result = _Search([("name", self.getname())], criteria, parent_infos) |
761 var_number = 0 |
764 var_number = 0 |
762 for varlist in self.getglobalVars(): |
765 for varlist in self.getglobalVars(): |
763 variable_type = searchResultVarTypes.get("globalVars", "var_local") |
766 variable_type = searchResultVarTypes.get("globalVars", "var_local") |
764 variables = varlist.getvariable() |
767 variables = varlist.getvariable() |
808 setattr(cls, "updateElementAddress", updateElementAddress) |
811 setattr(cls, "updateElementAddress", updateElementAddress) |
809 |
812 |
810 setattr(cls, "removeVariableByAddress", _removeConfigurationResourceVariableByAddress) |
813 setattr(cls, "removeVariableByAddress", _removeConfigurationResourceVariableByAddress) |
811 setattr(cls, "removeVariableByFilter", _removeConfigurationResourceVariableByFilter) |
814 setattr(cls, "removeVariableByFilter", _removeConfigurationResourceVariableByFilter) |
812 |
815 |
813 def Search(self, criteria, parent_infos=[]): |
816 def Search(self, criteria, parent_infos=None): |
|
817 parent_infos = [] if parent_infos is None else parent_infos |
814 search_result = [] |
818 search_result = [] |
815 parent_infos = parent_infos + ["C::%s" % self.getname()] |
819 parent_infos = parent_infos + ["C::%s" % self.getname()] |
816 filter = criteria["filter"] |
820 filter = criteria["filter"] |
817 if filter == "all" or "configuration" in filter: |
821 if filter == "all" or "configuration" in filter: |
818 search_result = _SearchInConfigurationResource(self, criteria, parent_infos) |
822 search_result = _SearchInConfigurationResource(self, criteria, parent_infos) |
846 setattr(cls, "updateElementAddress", updateElementAddress) |
850 setattr(cls, "updateElementAddress", updateElementAddress) |
847 |
851 |
848 setattr(cls, "removeVariableByAddress", _removeConfigurationResourceVariableByAddress) |
852 setattr(cls, "removeVariableByAddress", _removeConfigurationResourceVariableByAddress) |
849 setattr(cls, "removeVariableByFilter", _removeConfigurationResourceVariableByFilter) |
853 setattr(cls, "removeVariableByFilter", _removeConfigurationResourceVariableByFilter) |
850 |
854 |
851 def Search(self, criteria, parent_infos=[]): |
855 def Search(self, criteria, parent_infos=None): |
|
856 parent_infos = [] if parent_infos is None else parent_infos |
852 parent_infos = parent_infos[:-1] + ["R::%s::%s" % (parent_infos[-1].split("::")[1], self.getname())] |
857 parent_infos = parent_infos[:-1] + ["R::%s::%s" % (parent_infos[-1].split("::")[1], self.getname())] |
853 search_result = _SearchInConfigurationResource(self, criteria, parent_infos) |
858 search_result = _SearchInConfigurationResource(self, criteria, parent_infos) |
854 task_number = 0 |
859 task_number = 0 |
855 instance_number = 0 |
860 instance_number = 0 |
856 for task in self.gettask(): |
861 for task in self.gettask(): |
894 self.single = update_address(self.single, address_model, new_leading) |
899 self.single = update_address(self.single, address_model, new_leading) |
895 if self.interval is not None: |
900 if self.interval is not None: |
896 self.interval = update_address(self.interval, address_model, new_leading) |
901 self.interval = update_address(self.interval, address_model, new_leading) |
897 setattr(cls, "updateElementAddress", updateElementAddress) |
902 setattr(cls, "updateElementAddress", updateElementAddress) |
898 |
903 |
899 def Search(self, criteria, parent_infos=[]): |
904 def Search(self, criteria, parent_infos=None): |
|
905 parent_infos = [] if parent_infos is None else parent_infos |
900 return _Search([("single", self.getsingle()), |
906 return _Search([("single", self.getsingle()), |
901 ("interval", self.getinterval()), |
907 ("interval", self.getinterval()), |
902 ("priority", str(self.getpriority()))], |
908 ("priority", str(self.getpriority()))], |
903 criteria, parent_infos) |
909 criteria, parent_infos) |
904 setattr(cls, "Search", Search) |
910 setattr(cls, "Search", Search) |
916 def updateElementName(self, old_name, new_name): |
922 def updateElementName(self, old_name, new_name): |
917 if TextMatched(self.typeName, old_name): |
923 if TextMatched(self.typeName, old_name): |
918 self.typeName = new_name |
924 self.typeName = new_name |
919 setattr(cls, "updateElementName", updateElementName) |
925 setattr(cls, "updateElementName", updateElementName) |
920 |
926 |
921 def Search(self, criteria, parent_infos=[]): |
927 def Search(self, criteria, parent_infos=None): |
|
928 parent_infos = [] if parent_infos is None else parent_infos |
922 return _Search([("name", self.getname()), |
929 return _Search([("name", self.getname()), |
923 ("type", self.gettypeName())], |
930 ("type", self.gettypeName())], |
924 criteria, parent_infos) |
931 criteria, parent_infos) |
925 setattr(cls, "Search", Search) |
932 setattr(cls, "Search", Search) |
926 |
933 |
959 return "ARRAY [%s] OF %s" % (",".join(map(lambda x: "%s..%s" % (x.getlower(), x.getupper()), vartype_content.getdimension())), basetype_name) |
966 return "ARRAY [%s] OF %s" % (",".join(map(lambda x: "%s..%s" % (x.getlower(), x.getupper()), vartype_content.getdimension())), basetype_name) |
960 # Variable type is an elementary type |
967 # Variable type is an elementary type |
961 return vartype_content_name |
968 return vartype_content_name |
962 setattr(cls, "gettypeAsText", gettypeAsText) |
969 setattr(cls, "gettypeAsText", gettypeAsText) |
963 |
970 |
964 def Search(self, criteria, parent_infos=[]): |
971 def Search(self, criteria, parent_infos=None): |
|
972 parent_infos = [] if parent_infos is None else parent_infos |
965 search_result = _Search([("name", self.getname()), |
973 search_result = _Search([("name", self.getname()), |
966 ("type", self.gettypeAsText()), |
974 ("type", self.gettypeAsText()), |
967 ("location", self.getaddress())], |
975 ("location", self.getaddress())], |
968 criteria, parent_infos) |
976 criteria, parent_infos) |
969 initial = self.getinitialValue() |
977 initial = self.getinitialValue() |
1056 break |
1064 break |
1057 if not found: |
1065 if not found: |
1058 raise ValueError(_("\"%s\" POU doesn't exist !!!") % name) |
1066 raise ValueError(_("\"%s\" POU doesn't exist !!!") % name) |
1059 setattr(cls, "removepouElement", removepouElement) |
1067 setattr(cls, "removepouElement", removepouElement) |
1060 |
1068 |
1061 def Search(self, criteria, parent_infos=[]): |
1069 def Search(self, criteria, parent_infos=None): |
|
1070 parent_infos = [] if parent_infos is None else parent_infos |
1062 search_result = [] |
1071 search_result = [] |
1063 for datatype in self.dataTypes.getdataType(): |
1072 for datatype in self.dataTypes.getdataType(): |
1064 search_result.extend(datatype.Search(criteria, parent_infos)) |
1073 search_result.extend(datatype.Search(criteria, parent_infos)) |
1065 for pou in self.pous.getpou(): |
1074 for pou in self.pous.getpou(): |
1066 search_result.extend(pou.Search(criteria, parent_infos)) |
1075 search_result.extend(pou.Search(criteria, parent_infos)) |
1081 |
1090 |
1082 |
1091 |
1083 def _updateDataTypeDataTypesClass(cls): |
1092 def _updateDataTypeDataTypesClass(cls): |
1084 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
1093 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
1085 |
1094 |
1086 def Search(self, criteria, parent_infos=[]): |
1095 def Search(self, criteria, parent_infos=None): |
|
1096 parent_infos = [] if parent_infos is None else parent_infos |
1087 search_result = [] |
1097 search_result = [] |
1088 filter = criteria["filter"] |
1098 filter = criteria["filter"] |
1089 if filter == "all" or "datatype" in filter: |
1099 if filter == "all" or "datatype" in filter: |
1090 parent_infos = parent_infos + ["D::%s" % self.getname()] |
1100 parent_infos = parent_infos + ["D::%s" % self.getname()] |
1091 search_result.extend(_Search([("name", self.getname())], criteria, parent_infos)) |
1101 search_result.extend(_Search([("name", self.getname())], criteria, parent_infos)) |
1112 elif content_name == "struct": |
1122 elif content_name == "struct": |
1113 for element in self.content.getvariable(): |
1123 for element in self.content.getvariable(): |
1114 element.type.updateElementName(old_name, new_name) |
1124 element.type.updateElementName(old_name, new_name) |
1115 setattr(cls, "updateElementName", updateElementName) |
1125 setattr(cls, "updateElementName", updateElementName) |
1116 |
1126 |
1117 def Search(self, criteria, parent_infos=[]): |
1127 def Search(self, criteria, parent_infos=None): |
|
1128 parent_infos = [] if parent_infos is None else parent_infos |
1118 search_result = [] |
1129 search_result = [] |
1119 content_name = self.content.getLocalTag() |
1130 content_name = self.content.getLocalTag() |
1120 if content_name in ["derived", "array", "enum", "subrangeSigned", "subrangeUnsigned"]: |
1131 if content_name in ["derived", "array", "enum", "subrangeSigned", "subrangeUnsigned"]: |
1121 search_result.extend(self.content.Search(criteria, parent_infos + ["base"])) |
1132 search_result.extend(self.content.Search(criteria, parent_infos + ["base"])) |
1122 elif content_name == "struct": |
1133 elif content_name == "struct": |
1142 def updateElementName(self, old_name, new_name): |
1153 def updateElementName(self, old_name, new_name): |
1143 if TextMatched(self.name, old_name): |
1154 if TextMatched(self.name, old_name): |
1144 self.name = new_name |
1155 self.name = new_name |
1145 setattr(cls, "updateElementName", updateElementName) |
1156 setattr(cls, "updateElementName", updateElementName) |
1146 |
1157 |
1147 def Search(self, criteria, parent_infos=[]): |
1158 def Search(self, criteria, parent_infos=None): |
|
1159 parent_infos = [] if parent_infos is None else parent_infos |
1148 return [(tuple(parent_infos),) + result for result in TestTextElement(self.name, criteria)] |
1160 return [(tuple(parent_infos),) + result for result in TestTextElement(self.name, criteria)] |
1149 setattr(cls, "Search", Search) |
1161 setattr(cls, "Search", Search) |
1150 |
1162 |
1151 |
1163 |
1152 cls = PLCOpenParser.GetElementClass("derived", "dataType") |
1164 cls = PLCOpenParser.GetElementClass("derived", "dataType") |
1158 |
1170 |
1159 |
1171 |
1160 def _updateArrayDataTypeClass(cls): |
1172 def _updateArrayDataTypeClass(cls): |
1161 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
1173 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
1162 |
1174 |
1163 def Search(self, criteria, parent_infos=[]): |
1175 def Search(self, criteria, parent_infos=None): |
|
1176 parent_infos = [] if parent_infos is None else parent_infos |
1164 search_result = self.baseType.Search(criteria, parent_infos) |
1177 search_result = self.baseType.Search(criteria, parent_infos) |
1165 for i, dimension in enumerate(self.getdimension()): |
1178 for i, dimension in enumerate(self.getdimension()): |
1166 search_result.extend(_Search([("lower", dimension.getlower()), |
1179 search_result.extend(_Search([("lower", dimension.getlower()), |
1167 ("upper", dimension.getupper())], |
1180 ("upper", dimension.getupper())], |
1168 criteria, parent_infos + ["range", i])) |
1181 criteria, parent_infos + ["range", i])) |
1176 |
1189 |
1177 |
1190 |
1178 # ---------------------------------------------------------------------- |
1191 # ---------------------------------------------------------------------- |
1179 |
1192 |
1180 |
1193 |
1181 def _SearchInSubrange(self, criteria, parent_infos=[]): |
1194 def _SearchInSubrange(self, criteria, parent_infos=None): |
|
1195 parent_infos = [] if parent_infos is None else parent_infos |
1182 search_result = self.baseType.Search(criteria, parent_infos) |
1196 search_result = self.baseType.Search(criteria, parent_infos) |
1183 search_result.extend(_Search([("lower", self.range.getlower()), |
1197 search_result.extend(_Search([("lower", self.range.getlower()), |
1184 ("upper", self.range.getupper())], |
1198 ("upper", self.range.getupper())], |
1185 criteria, parent_infos)) |
1199 criteria, parent_infos)) |
1186 return search_result |
1200 return search_result |
1209 pass |
1223 pass |
1210 setattr(cls, "updateElementName", updateElementName) |
1224 setattr(cls, "updateElementName", updateElementName) |
1211 |
1225 |
1212 enumerated_datatype_values_xpath = PLCOpen_XPath("ppx:values/ppx:value") |
1226 enumerated_datatype_values_xpath = PLCOpen_XPath("ppx:values/ppx:value") |
1213 |
1227 |
1214 def Search(self, criteria, parent_infos=[]): |
1228 def Search(self, criteria, parent_infos=None): |
|
1229 parent_infos = [] if parent_infos is None else parent_infos |
1215 search_result = [] |
1230 search_result = [] |
1216 for i, value in enumerate(enumerated_datatype_values_xpath(self)): |
1231 for i, value in enumerate(enumerated_datatype_values_xpath(self)): |
1217 for result in TestTextElement(value.getname(), criteria): |
1232 for result in TestTextElement(value.getname(), criteria): |
1218 search_result.append((tuple(parent_infos + ["value", i]),) + result) |
1233 search_result.append((tuple(parent_infos + ["value", i]),) + result) |
1219 return search_result |
1234 return search_result |
1602 result = address_model.match(var_address) |
1617 result = address_model.match(var_address) |
1603 if result is not None: |
1618 if result is not None: |
1604 content.remove(variable) |
1619 content.remove(variable) |
1605 setattr(cls, "removeVariableByFilter", removeVariableByFilter) |
1620 setattr(cls, "removeVariableByFilter", removeVariableByFilter) |
1606 |
1621 |
1607 def Search(self, criteria, parent_infos=[]): |
1622 def Search(self, criteria, parent_infos=None): |
|
1623 parent_infos = [] if parent_infos is None else parent_infos |
1608 search_result = [] |
1624 search_result = [] |
1609 filter = criteria["filter"] |
1625 filter = criteria["filter"] |
1610 if filter == "all" or self.getpouType() in filter: |
1626 if filter == "all" or self.getpouType() in filter: |
1611 if parent_infos == []: |
1627 if parent_infos == []: |
1612 parent_infos = parent_infos + ["P::%s" % self.getname()] |
1628 parent_infos = parent_infos + ["P::%s" % self.getname()] |
1967 else: |
1983 else: |
1968 for element in self.content.getcontent(): |
1984 for element in self.content.getcontent(): |
1969 element.updateElementAddress(address_model, new_leading) |
1985 element.updateElementAddress(address_model, new_leading) |
1970 setattr(cls, "updateElementAddress", updateElementAddress) |
1986 setattr(cls, "updateElementAddress", updateElementAddress) |
1971 |
1987 |
1972 def Search(self, criteria, parent_infos=[]): |
1988 def Search(self, criteria, parent_infos=None): |
|
1989 parent_infos = [] if parent_infos is None else parent_infos |
1973 if self.content.getLocalTag() in ["IL", "ST"]: |
1990 if self.content.getLocalTag() in ["IL", "ST"]: |
1974 search_result = self.content.Search(criteria, parent_infos + ["body", 0]) |
1991 search_result = self.content.Search(criteria, parent_infos + ["body", 0]) |
1975 else: |
1992 else: |
1976 search_result = [] |
1993 search_result = [] |
1977 for element in self.content.getcontent(): |
1994 for element in self.content.getcontent(): |
2115 |
2132 |
2116 def _updateElementAddress(self, address_model, new_leading): |
2133 def _updateElementAddress(self, address_model, new_leading): |
2117 pass |
2134 pass |
2118 |
2135 |
2119 |
2136 |
2120 def _SearchInElement(self, criteria, parent_infos=[]): |
2137 def _SearchInElement(self, criteria, parent_infos=None): |
2121 return [] |
2138 return [] |
2122 |
2139 |
2123 |
2140 |
2124 _connectionsFunctions = { |
2141 _connectionsFunctions = { |
2125 "bbox": {"none": _getBoundingBox, |
2142 "bbox": {"none": _getBoundingBox, |
2172 |
2189 |
2173 def updateElementAddress(self, address_model, new_leading): |
2190 def updateElementAddress(self, address_model, new_leading): |
2174 self.content.updateElementAddress(address_model, new_leading) |
2191 self.content.updateElementAddress(address_model, new_leading) |
2175 setattr(cls, "updateElementAddress", updateElementAddress) |
2192 setattr(cls, "updateElementAddress", updateElementAddress) |
2176 |
2193 |
2177 def Search(self, criteria, parent_infos=[]): |
2194 def Search(self, criteria, parent_infos=None): |
|
2195 parent_infos = [] if parent_infos is None else parent_infos |
2178 return self.content.Search(criteria, parent_infos + ["comment", self.getlocalId(), "content"]) |
2196 return self.content.Search(criteria, parent_infos + ["comment", self.getlocalId(), "content"]) |
2179 setattr(cls, "Search", Search) |
2197 setattr(cls, "Search", Search) |
2180 |
2198 |
2181 |
2199 |
2182 cls = _initElementClass("comment", "commonObjects") |
2200 cls = _initElementClass("comment", "commonObjects") |
2216 _translate(self, dx, dy) |
2234 _translate(self, dx, dy) |
2217 for input in self.inputVariables.getvariable(): |
2235 for input in self.inputVariables.getvariable(): |
2218 _translateConnections(input.connectionPointIn, dx, dy) |
2236 _translateConnections(input.connectionPointIn, dx, dy) |
2219 setattr(cls, "translate", translate) |
2237 setattr(cls, "translate", translate) |
2220 |
2238 |
2221 def Search(self, criteria, parent_infos=[]): |
2239 def Search(self, criteria, parent_infos=None): |
|
2240 parent_infos = [] if parent_infos is None else parent_infos |
2222 parent_infos = parent_infos + ["block", self.getlocalId()] |
2241 parent_infos = parent_infos + ["block", self.getlocalId()] |
2223 search_result = _Search([("name", self.getinstanceName()), |
2242 search_result = _Search([("name", self.getinstanceName()), |
2224 ("type", self.gettypeName())], |
2243 ("type", self.gettypeName())], |
2225 criteria, parent_infos) |
2244 criteria, parent_infos) |
2226 for i, variable in enumerate(self.inputVariables.getvariable()): |
2245 for i, variable in enumerate(self.inputVariables.getvariable()): |
2253 def _UpdateLDElementAddress(self, address_model, new_leading): |
2272 def _UpdateLDElementAddress(self, address_model, new_leading): |
2254 self.variable = update_address(self.variable, address_model, new_leading) |
2273 self.variable = update_address(self.variable, address_model, new_leading) |
2255 |
2274 |
2256 |
2275 |
2257 def _getSearchInLDElement(ld_element_type): |
2276 def _getSearchInLDElement(ld_element_type): |
2258 def SearchInLDElement(self, criteria, parent_infos=[]): |
2277 def SearchInLDElement(self, criteria, parent_infos=None): |
|
2278 parent_infos = [] if parent_infos is None else parent_infos |
2259 return _Search([("reference", self.variable)], criteria, parent_infos + [ld_element_type, self.getlocalId()]) |
2279 return _Search([("reference", self.variable)], criteria, parent_infos + [ld_element_type, self.getlocalId()]) |
2260 return SearchInLDElement |
2280 return SearchInLDElement |
2261 |
2281 |
2262 |
2282 |
2263 # ---------------------------------------------------------------------- |
2283 # ---------------------------------------------------------------------- |
2282 |
2302 |
2283 # ---------------------------------------------------------------------- |
2303 # ---------------------------------------------------------------------- |
2284 |
2304 |
2285 |
2305 |
2286 def _updateStepSfcObjectSingleClass(cls): |
2306 def _updateStepSfcObjectSingleClass(cls): |
2287 def Search(self, criteria, parent_infos=[]): |
2307 def Search(self, criteria, parent_infos=None): |
|
2308 parent_infos = [] if parent_infos is None else parent_infos |
2288 return _Search([("name", self.getname())], criteria, parent_infos + ["step", self.getlocalId()]) |
2309 return _Search([("name", self.getname())], criteria, parent_infos + ["step", self.getlocalId()]) |
2289 setattr(cls, "Search", Search) |
2310 setattr(cls, "Search", Search) |
2290 |
2311 |
2291 |
2312 |
2292 cls = _initElementClass("step", "sfcObjects", "single") |
2313 cls = _initElementClass("step", "sfcObjects", "single") |
2394 if condition_connection is not None: |
2415 if condition_connection is not None: |
2395 return condition_connection.getconnections() |
2416 return condition_connection.getconnections() |
2396 return None |
2417 return None |
2397 setattr(cls, "getconnections", getconnections) |
2418 setattr(cls, "getconnections", getconnections) |
2398 |
2419 |
2399 def Search(self, criteria, parent_infos=[]): |
2420 def Search(self, criteria, parent_infos=None): |
|
2421 parent_infos = [] if parent_infos is None else parent_infos |
2400 parent_infos = parent_infos + ["transition", self.getlocalId()] |
2422 parent_infos = parent_infos + ["transition", self.getlocalId()] |
2401 search_result = [] |
2423 search_result = [] |
2402 content = self.condition.getcontent() |
2424 content = self.condition.getcontent() |
2403 content_name = content.getLocalTag() |
2425 content_name = content.getLocalTag() |
2404 if content_name == "reference": |
2426 if content_name == "reference": |
2473 self.reference.setname(update_address(self.reference.getname(), address_model, new_leading)) |
2495 self.reference.setname(update_address(self.reference.getname(), address_model, new_leading)) |
2474 if self.inline is not None: |
2496 if self.inline is not None: |
2475 self.inline.updateElementAddress(address_model, new_leading) |
2497 self.inline.updateElementAddress(address_model, new_leading) |
2476 setattr(cls, "updateElementAddress", updateElementAddress) |
2498 setattr(cls, "updateElementAddress", updateElementAddress) |
2477 |
2499 |
2478 def Search(self, criteria, parent_infos=[]): |
2500 def Search(self, criteria, parent_infos=None): |
|
2501 parent_infos = [] if parent_infos is None else parent_infos |
2479 qualifier = self.getqualifier() |
2502 qualifier = self.getqualifier() |
2480 if qualifier is None: |
2503 if qualifier is None: |
2481 qualifier = "N" |
2504 qualifier = "N" |
2482 return _Search([("inline", self.getinlineContent()), |
2505 return _Search([("inline", self.getinlineContent()), |
2483 ("reference", self.getreferenceName()), |
2506 ("reference", self.getreferenceName()), |
2546 def updateElementAddress(self, address_model, new_leading): |
2569 def updateElementAddress(self, address_model, new_leading): |
2547 for action in self.action: |
2570 for action in self.action: |
2548 action.updateElementAddress(address_model, new_leading) |
2571 action.updateElementAddress(address_model, new_leading) |
2549 setattr(cls, "updateElementAddress", updateElementAddress) |
2572 setattr(cls, "updateElementAddress", updateElementAddress) |
2550 |
2573 |
2551 def Search(self, criteria, parent_infos=[]): |
2574 def Search(self, criteria, parent_infos=None): |
|
2575 parent_infos = [] if parent_infos is None else parent_infos |
2552 parent_infos = parent_infos + ["action_block", self.getlocalId()] |
2576 parent_infos = parent_infos + ["action_block", self.getlocalId()] |
2553 search_result = [] |
2577 search_result = [] |
2554 for idx, action in enumerate(self.action): |
2578 for idx, action in enumerate(self.action): |
2555 search_result.extend(action.Search(criteria, parent_infos + ["action", idx])) |
2579 search_result.extend(action.Search(criteria, parent_infos + ["action", idx])) |
2556 return search_result |
2580 return search_result |
2563 |
2587 |
2564 |
2588 |
2565 # ---------------------------------------------------------------------- |
2589 # ---------------------------------------------------------------------- |
2566 |
2590 |
2567 |
2591 |
2568 def _SearchInIOVariable(self, criteria, parent_infos=[]): |
2592 def _SearchInIOVariable(self, criteria, parent_infos=None): |
|
2593 parent_infos = [] if parent_infos is None else parent_infos |
2569 return _Search([("expression", self.expression)], criteria, parent_infos + ["io_variable", self.getlocalId()]) |
2594 return _Search([("expression", self.expression)], criteria, parent_infos + ["io_variable", self.getlocalId()]) |
2570 |
2595 |
2571 |
2596 |
2572 def _UpdateIOElementName(self, old_name, new_name): |
2597 def _UpdateIOElementName(self, old_name, new_name): |
2573 if TextMatched(self.expression, old_name): |
2598 if TextMatched(self.expression, old_name): |
2595 setattr(cls, "updateElementName", _UpdateIOElementName) |
2620 setattr(cls, "updateElementName", _UpdateIOElementName) |
2596 setattr(cls, "updateElementAddress", _UpdateIOElementAddress) |
2621 setattr(cls, "updateElementAddress", _UpdateIOElementAddress) |
2597 setattr(cls, "Search", _SearchInIOVariable) |
2622 setattr(cls, "Search", _SearchInIOVariable) |
2598 |
2623 |
2599 |
2624 |
2600 def _SearchInConnector(self, criteria, parent_infos=[]): |
2625 def _SearchInConnector(self, criteria, parent_infos=None): |
|
2626 parent_infos = [] if parent_infos is None else parent_infos |
2601 return _Search([("name", self.getname())], criteria, parent_infos + ["connector", self.getlocalId()]) |
2627 return _Search([("name", self.getname())], criteria, parent_infos + ["connector", self.getlocalId()]) |
2602 |
2628 |
2603 |
2629 |
2604 # ---------------------------------------------------------------------- |
2630 # ---------------------------------------------------------------------- |
2605 |
2631 |