+ ConstraintInspector.getName(facet.getClass())
+ "] facet depends on the following missing facet(s): "
+ facetNames
+ ". Install as well?"))
{
throw new Abort();
}
else
{
List<Facet> installed = new ArrayList<Facet>();
for (Class<? extends Facet> d : missingDeps)
{
Facet instance = factory.getFacet(d);
if (performInstallation(instance, prompt))
{
installed.add(instance);
}
else
{
// attempt to undo everything we've done so far
for (Facet f : installed)
{
if (!f.uninstall())
{
ShellMessages.info(shell,
"Could not uninstall [" + ConstraintInspector.getName(f.getClass())
+ "]. Must be cleaned up manually.");
}
else
{
ShellMessages.info(shell,
"Uninstalled facet [" + ConstraintInspector.getName(f.getClass())
+ "].");
}
}
throw new Abort();
}
}
}
}
}