def setOutputInputAttributes(self,inAttNames,outAttNames): i=0 attName="" att= Attribute() for i in range (0, len(self.__attributes)): att = Attribute(self.__attributes[i]) attName = att.getName() if (attName in inAttNames): att.setDirectionAttribute(Attribute.INPUT) self.__inputAttr.append(self.__attributes[i]) elif (attName in outAttNames): att.setDirectionAttribute(Attribute.OUTPUT) self.__outputAttr.append(self.__attributes[i]) else: self.__undefinedAttr.append(self.__attributes[i]) #Finally, making some statistics self.__hasNominal = False self.__hasInteger = False self.__hasReal = False for index in range (0,2): if(index == 0): iterations=len(self._inputAttr) else: iterations=len(self._outputAttr) for i in range (0,iterations): if(index == 0): att = Attribute(self._inputAttr[i]) else: att= Attribute(self._outputAttr[i]) if ( att.getType()== Attribute.NOMINAL): self.__hasNominal = True elif(att.getType() == Attribute.INTEGER): self.__hasInteger = True elif(att.getType() == Attribute.REAL): self.__hasReal = True
def removeAttribute(self, inputAtt, whichAtt): atToDel = None if inputAtt and (whichAtt >= len(self.__inputAttr) or whichAtt < 0): return False if self.__inputAtt and (whichAtt >= len(self.__outputAttr) or whichAtt < 0): return False if inputAtt: # inputAttribute atToDel = Attribute(self.__inputAttr[whichAtt]) atToDel.setDirectionAttribute(Attribute.DIR_NOT_DEF) self.__inputAttr.removeElementAt(whichAtt) else: # output attribute atToDel = Attribute(self.__outputAttr[whichAtt]) atToDel.setDirectionAttribute(Attribute.DIR_NOT_DEF) self.__outputAttr.removeElementAt(whichAtt) # We get the position where it has to go in the undefined attributes vector. self.__undefPosition = self.searchUndefPosition(atToDel) self.__undefinedAttr.insertElementAt(atToDel, self.__undefPosition) self.__hasNominal = False self.__hasInteger = False self.__hasReal = False for index in (0, 2): iterations = 0 if index == 0: iterations = len(self.__inputAttr) else: iterations = len(self.__outputAttr) for i in range(0, iterations): if index == 0: att = Attribute(self.__inputAttr[i]) else: att = Attribute(self.__outputAttr[i]) attTypeHere = att.getType() if attTypeHere == Attribute.NOMINAL: self.__hasNominal = True elif attTypeHere == Attribute.INTEGER: self.__hasInteger = True elif attTypeHere == Attribute.REAL: self.__hasReal = True return True