El nuevo FeatureManager debería tener al menos estos métodos: def get(feat) { if(deleted.containsKey(feat)){ return null } if(updated.containsKey(feat)){ return load(updated.get(feat)) } if(inserted.containsKey(feat)){ return load(updated.get(feat)) } if(original){ return original } return feature; } def getOriginal(feat) { return original.getOrDefault(feat, feat) } def insert(feat) { inserted.put(feat, save(feat)) } def delete(feat) { saveOriginal(feat) deleted.put(feat, save(feat)) } def set(feat, oldFeature) { saveOriginal(oldFeature) updated.put(feat, save(feat)) } def save(feat) { guarda la feature en el expansion adapter y devuelve el código asociado a ella } def load(feat) { recupera la feature del expansion adapter y la devuelve } def saveOriginal(feat) { if(deleted.containsKey(feat)){ return } if(updated.containsKey(feat)){ return } if(inserted.containsKey(feat)){ return } original.put(feat, save(feat)) return; }