def display_PackageFilter_Activity(activities):
    # get database connection from DBConnectionManager
    db_connection = DBConnectManager().get_connection(analysis_init_default_value.APP_NAME)
    packages_filter = []
    if activities:
        packages_filter = dataUtils.get_PackageFilter_Activity(db_connection,
                                                       activities)
    else:
        print "Must at least one activity to filter package!"

    if packages_filter:
        print "List package filter found with activities provided"
        cursor = db_connection.cursor()
        for pkg_ac in packages_filter:
            print pkg_ac;
            ## write it to db
            #add packages filter by activity to table PACKAGE_FILTER_ACTIVITY
            try:
                # Execute the SQL command
                cursor.execute("""INSERT INTO PACKAGE_FILTER_ACTIVITY (package_id,dstClass, dstMethod, dstMethodDes, srcClass, srcMethod, srcMethodDes)
                                                                    VALUES (%s,%s,%s,%s,%s,%s,%s)""", pkg_ac)
                # Commit your changes in the database
                db_connection.commit()
            except MySQLdb.Error, e:
                # Rollback in call
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "MySQL Roll back..."
                db_connection.rollback()
def dispaly_sensitive_apis(table):
    # get database connection from DBConnectionManager
    db_connection = DBConnectManager().get_connection(analysis_init_default_value.APP_NAME)
    # filter sensitive apis from table
    SENSITIVE_APIs_FromDB = dataUtils.get_SensitiveAPIs(db_connection, table)

    if SENSITIVE_APIs_FromDB:
        cursor = db_connection.cursor()
        print "-------SENSITIVE_APIs_FromDB-------------"
        for s_apis in SENSITIVE_APIs_FromDB:
            print s_apis
            # insert this sensitive api to db
            try:
                # Execute the SQL command
                cursor.execute("""INSERT INTO SENSITIVE_APIS (package_id,dstClass, dstMethod, dstMethodDes, srcClass, srcMethod, srcMethodDes)
                                                                    VALUES (%s,%s,%s,%s,%s,%s,%s)""", s_apis)
                # Commit your changes in the database
                db_connection.commit()
            except MySQLdb.Error, e:
                # Rollback in call
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "MySQL Roll back..."
                db_connection.rollback()
def display_PERMISSION(a, x, classes):

    # get database connection from DBConnectionManager
    db_connection = DBConnectManager().get_connection(analysis_init_default_value.APP_NAME)

    if db_connection is not None:
        cursor = db_connection.cursor()
        # Show methods used by permission
        perms_access = x.get_tainted_packages().get_permissions( [] )
        for perm in perms_access:
            #add perm to table PERMISSIONS
            try:
                # Execute the SQL command
                cursor.execute("""INSERT INTO PERMISSIONS (permission_name, permission_des) VALUES (%s,%s)""",
                               (perm, ''))
                # Commit your changes in the database
                db_connection.commit()
            except MySQLdb.Error, e:
                # Rollback in call
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "MySQL Roll back..."
                db_connection.rollback()
            print "PERM : ", perm
            analysis.show_Paths( a, perms_access[ perm ], analysis_init_default_value.A_PERMISSION, perms_access.keys().index(perm) + 1)