public static boolean isUninstallable ( Set < IFixInfo > installedFixes , IFixInfo fixToBeUninstalled ) { if ( Boolean . valueOf ( System . getenv ( S_DISABLE ) ) . booleanValue ( ) ) { return true ; } if ( fixToBeUninstalled != null ) { for ( IFixInfo fix : installedFixes ) { if ( ! ( fixToBeUninstalled . getId ( ) . equals ( fix . getId ( ) ) ) && ! confirmNoFileConflicts ( fixToBeUninstalled . getUpdates ( ) . getFiles ( ) , fix . getUpdates ( ) . getFiles ( ) ) ) { if ( ! isSupersededBy ( fix . getResolves ( ) . getProblems ( ) , fixToBeUninstalled . getResolves ( ) . getProblems ( ) ) ) { return false ; } } } return true ; } return false ; }
Return true if fixToBeUninstalled can be uninstalled . fixToBeUninstalled can only be uninstalled if there are no file conflicts with other fixes in the installedFixes Set that supersedes fixToBeUninstalled