예제 #1
0
    def loadClassFile(self):

        fileName = QFileDialog.getOpenFileName(self, QString.fromUtf8("Select a Java class file"), '.', QString.fromUtf8("Java Class (*.class)"))

        if fileName:

            self.classFileText.setText(fileName)

            parser = Parser(fileName)

            try:
                result = parser.parse()
                print result

                self.magicNumText.setText(ByteToHex(result.getMagicNumber()))

                (majVer, minVer) = result.getVersions()

                self.majVerText.setText(str(majVer))
                self.minVerText.setText(str(minVer))

                self.accessFlagText.setText(ClassAccessFlags.flagToStr(result.getAccessFlag()))

                constants = result.getConstants()
                self.tabWidget.setTabText(1, "Constant Pool (%d)" % len(constants))

            except ParsingException,e:
                print e
예제 #2
0
    def loadClassFile(self):

        fileName = QFileDialog.getOpenFileName(
            self, QString.fromUtf8("Select a Java class file"), '.',
            QString.fromUtf8("Java Class (*.class)"))

        if fileName:

            self.classFileText.setText(fileName)

            parser = Parser(fileName)

            try:
                result = parser.parse()
                print result

                self.magicNumText.setText(ByteToHex(result.getMagicNumber()))

                (majVer, minVer) = result.getVersions()

                self.majVerText.setText(str(majVer))
                self.minVerText.setText(str(minVer))

                self.accessFlagText.setText(
                    ClassAccessFlags.flagToStr(result.getAccessFlag()))

                constants = result.getConstants()
                self.tabWidget.setTabText(
                    1, "Constant Pool (%d)" % len(constants))

            except ParsingException, e:
                print e
예제 #3
0
    def __str__(self):

        result = ""

        result += "File Name: %s\n" % self.cls_file_name
        result += "Magic Number: %s\n" % PyJavapInternal.ByteToHex(
            self.magicNumber)
        result += "Major Version: %d\n" % self.majorVer
        result += "Minor Version: %d\n" % self.minorVer

        result += "Constant Pool (Count %d)\n" % len(self.constants)

        if len(self.constants) > 0:
            if self.constants is not None:
                result += "==========================\n"

                for i in range(len(self.constants)):
                    result += 'const #%d = %s\n' % (i + 1,
                                                    str(self.constants[i]))

            result += "==========================\n"

        result += "Access Flag: %s\n" % ClassAccessFlags.flagToStr(
            self.accessFlag)

        if self.thisIndex >= 1:
            result += "this: %s\n" % self.getClassName(self.thisIndex)

        if self.superIndex >= 1:
            result += "super: %s\n" % self.getClassName(self.superIndex)

        if len(self.attributes):
            result += "Attributes\n"
            result += "=====================\n"

            for attribute in self.attributes:
                result += str(attribute) + "\n"

            result += "\n"

        if self.interfaceCount > 0:

            result += "Implemented interfaces: "
            for i in range(self.interfaceCount):
                result += self.getClassName(self.interfaces[i]) + ","
            result = result[:-1]  # eliminate the last ','
            result += "\n"

        else:
            result += "No interface\n"

        if self.fieldCount > 0:

            result += "Fields(%d): \n" % self.fieldCount
            for i in range(self.fieldCount):
                result += "\t" + str(self.fields[i]) + "\n"

        if self.methodCount > 0:

            result += "Methods(%d): \n" % self.methodCount
            for i in range(self.methodCount):
                result += "\t" + str(self.methods[i]) + "\n"

        return result
예제 #4
0
    def __str__(self):

        result = ""

        result += "File Name: %s\n" % self.cls_file_name
        result += "Magic Number: %s\n" % PyJavapInternal.ByteToHex(self.magicNumber)
        result += "Major Version: %d\n" % self.majorVer
        result += "Minor Version: %d\n" % self.minorVer

        result += "Constant Pool (Count %d)\n" % len(self.constants)

        if len(self.constants) > 0:
            if self.constants is not None:
                result += "==========================\n"

                for i in range(len(self.constants)):
                    result += 'const #%d = %s\n' % (i + 1, str(self.constants[i]))

            result += "==========================\n"

        result += "Access Flag: %s\n" % ClassAccessFlags.flagToStr(self.accessFlag)

        if self.thisIndex >= 1:
            result += "this: %s\n" % self.getClassName(self.thisIndex)

        if self.superIndex >= 1:
            result += "super: %s\n" % self.getClassName(self.superIndex)

        if len(self.attributes):
            result += "Attributes\n"
            result += "=====================\n"

            for attribute in self.attributes:
                result += str(attribute) + "\n"

            result += "\n"

        if self.interfaceCount > 0:

            result += "Implemented interfaces: "
            for i in range(self.interfaceCount):
                result += self.getClassName(self.interfaces[i]) + ","
            result = result[:-1] # eliminate the last ','
            result += "\n"

        else:
            result += "No interface\n"


        if self.fieldCount > 0:

            result += "Fields(%d): \n" % self.fieldCount
            for i in range(self.fieldCount):
                result += "\t" + str(self.fields[i]) + "\n"

        if self.methodCount > 0:

            result += "Methods(%d): \n" % self.methodCount
            for i in range(self.methodCount):
                result += "\t" + str(self.methods[i]) + "\n"

        return result