* @return true if the update was successful, othere; false.
     */
    public boolean updateAction(Action action) {
        // get instance of state manager
        StateManager stateManager = library.getStateManager();
        if (getObject(ACTION_KEY) != null) {
            Action currentAction = getAction();
            // check if we are updating an existing instance
            if (!currentAction.similar(action)) {
                stateManager.addChange(new PObject(action,
                        action.getPObjectReference()));
                currentAction.setDeleted(true);
                stateManager.addChange(new PObject(currentAction,
                        currentAction.getPObjectReference()));
            }
            // add the action to the annotation
            getEntries().put(ACTION_KEY, action.getPObjectReference());
            stateManager.addChange(new PObject(action,
                    action.getPObjectReference()));

            return true;
        }
        return false;
    }