code: public void uninstall(UninstallAsset uninstallAsset, boolean checkDependency,
                            List<File> filesRestored) throws IOException, ParserConfigurationException, SAXException, InstallException {
          if (uninstallAsset.getType().equals(UninstallAssetType.feature)) {
              // Remove the feature contents and metadata
              ESAAdaptor.uninstallFeature(uninstallAsset, uninstallAsset.getProvisioningFeatureDefinition(),
                                          getBaseDir(uninstallAsset.getProvisioningFeatureDefinition()), filesRestored);
          } else if (uninstallAsset.getType().equals(UninstallAssetType.fix)) {
              FixAdaptor.uninstallFix(uninstallAsset.getIFixInfo(), product.getInstallDir(), filesRestored);
          }
          InstallUtils.updateFingerprint(product.getInstallDir());
      }
docs: Determines which install method to call based on the type of uninstallAsset
  
  @param uninstallAsset UninstallAsset to uninstall
  @param checkDependency If dependencies should be checked
  @param filesRestored Files to be restored
  @throws IOException
  @throws ParserConfigurationException
  @throws SAXException
  @throws InstallException