Last night Pangloss and I decided to move to a new model for AutomaticIndices for Blueprints 0.5-SNAPSHOT. This new model is simpler, requires less code, but is more restrictive than the previous model. However, we feel that clean semantics is important.
In short, AutomaticIndex keys are immutable. When you create an AutomaticIndex, you specify the keys to index (null for index everything). These index keys can not change. If you wish to index by a new key, a new AutomaticIndex needs to be created.
The AutomaticIndex interface shrunk to one method: getAutoIndexKeys().
The IndexGraph interface now has createAutomaticIndex() and createManualIndex().
You can learn more here: https://github.com/tinkerpop/blueprints/wiki/Graph-Indices
This new model is now in Blueprints 0.5-SNAPSHOT, Gremlin 0.8-SNAPSHOT, and Rexster 0.2-SNAPSHOT.
Take care,
Marko.