class ErrorResolver: "Resolves errors to error configs" def __init__(self, data=None): #list of keys is maintained in order to ensure the #predictable iteration order self.configsMap = LinkedHashMap() if data: self.configsMap.putAll(data) self.initDefaultConfigs() def addConfig(self, pattern, config): self.configsMap.put(pattern, config) def hasConfig(self, msg): iterator = self.configsMap.keySet().iterator() while iterator.hasNext(): pattern = iterator.next() if re.search(pattern, msg, re.I | re.M): return 1 def getConfig(self, msg): iterator = self.configsMap.keySet().iterator() while iterator.hasNext(): pattern = iterator.next() if re.search(pattern, msg, re.I | re.M): return self.configsMap.get(pattern) def getDefaultConfig(self): return self.defaultConfig def copy(self): return ErrorResolver(self.configsMap) def __len__(self): return self.configsMap.size() def __getitem__(self, key): return self.configsMap.get(key) def __setitem__(self, key, item): self.addConfig(key, item) def keys(self): return self.configsMap.keySet() def initDefaultConfigs(self): self.defaultConfigWithDetails = ErrorMessageConfig( ERROR_GENERIC_WITH_DETAILS, errorcodes.INTERNAL_ERROR_WITH_PROTOCOL_DETAILS) self.defaultConfig = ErrorMessageConfig(ERROR_CONNECTION_FAILED, errorcodes.CONNECTION_FAILED) self.defaultConfigNoProtocol = ErrorMessageConfig( ERROR_CONNECTION_FAILED_NO_PROTOCOL, errorcodes.CONNECTION_FAILED_NO_PROTOCOL) self.defaultConfigNoProtocolWithDetails = ErrorMessageConfig( ERROR_CONNECTION_FAILED_NO_PROTOCOL_WITH_DETAILS, errorcodes.CONNECTION_FAILED_NO_PROTOCOL_WITH_DETAILS)
# Now compute beams bgroupMap = LinkedHashMap() newMesh = algo.getOutputMesh() #print "beams size: "+str(mesh.getBeams().size()) for i in xrange(newMesh.getBeams().size() / 2): bId = newMesh.getBeamGroup(i) listBeamId = bgroupMap.get(bId) if listBeamId is None: listBeamId = TIntArrayList(100) bgroupMap.put(bId, listBeamId) listBeamId.add(i) vertices = ArrayList(newMesh.getBeams()) newMesh.resetBeams() mapGroupToListOfPolylines = LinkedHashMap() for bId in bgroupMap.keySet(): listBeamId = bgroupMap.get(bId) listOfPolylines = ArrayList() polyline = ArrayList() lastVertex = None for i in xrange(listBeamId.size()): b = listBeamId.get(i) if lastVertex != vertices.get(2*b): # New polyline polyline = ArrayList() listOfPolylines.add(polyline) polyline.add(vertices.get(2*b)) lastVertex = vertices.get(2*b+1) polyline.add(lastVertex) #print "Group "+str(bId)+" contains "+str(listOfPolylines.size())+" polylines and "+str(listBeamId.size()+1)+" vertices" mapGroupToListOfPolylines.put(bId, listOfPolylines)
MeshReader.readObject3D(mesh, xmlDir) bgroupMap = LinkedHashMap() #print "beams size: "+str(mesh.getBeams().size()) for i in xrange(mesh.getBeams().size() / 2): bId = mesh.getBeamGroup(i) listBeamId = bgroupMap.get(bId) if listBeamId is None: listBeamId = TIntArrayList(100) bgroupMap.put(bId, listBeamId) listBeamId.add(i) vertices = ArrayList(mesh.getBeams()) mesh.resetBeams() mapGroupToListOfPolylines = LinkedHashMap() for bId in bgroupMap.keySet(): listBeamId = bgroupMap.get(bId) listOfPolylines = ArrayList() polyline = ArrayList() lastVertex = None for i in xrange(listBeamId.size()): b = listBeamId.get(i) if lastVertex != vertices.get(2*b): # New polyline polyline = ArrayList() listOfPolylines.add(polyline) polyline.add(vertices.get(2*b)) lastVertex = vertices.get(2*b+1) polyline.add(lastVertex) print "Group "+str(bId)+" contains "+str(listOfPolylines.size())+" polylines and "+str(listBeamId.size()+1)+" vertices" mapGroupToListOfPolylines.put(bId, listOfPolylines)