}
}
@Override
public void onUpdate(NodeContext<N> source, NodeState state) throws NavigationServiceException {
Navigation sourceNav = session.findObjectById(ObjectType.NAVIGATION, source.data.id);
//
toEvict.add(sourceNav.getObjectId());
Workspace workspace = sourceNav.getSite().getWorkspace();
PageKey reference = state.getPageRef();
if (reference != null) {
ObjectType<? extends Site> siteType = Utils.objectType(reference.getSite().getType());
Site site = workspace.getSite(siteType, reference.getSite().getName());
org.gatein.mop.api.workspace.Page target = site.getRootPage().getChild("pages").getChild(reference.getName());
PageLink link = sourceNav.linkTo(ObjectType.PAGE_LINK);
link.setPage(target);
} else {
PageLink link = sourceNav.linkTo(ObjectType.PAGE_LINK);
link.setPage(null);
}
//
Described described = sourceNav.adapt(Described.class);
described.setName(state.getLabel());
//
Visible visible = sourceNav.adapt(Visible.class);
visible.setVisibility(state.getVisibility());
//
visible.setStartPublicationDate(state.getStartPublicationDate());
visible.setEndPublicationDate(state.getEndPublicationDate());
//
Attributes attrs = sourceNav.getAttributes();
attrs.setValue(MappedAttributes.ICON, state.getIcon());
//
source.data = new NodeData(sourceNav);
source.state = null;