private ObjectSpecification elementSpecFrom(final ObjectAndActionInvocation objectAndActionInvocation) { final TypeOfFacet typeOfFacet = objectAndActionInvocation.getAction().getFacet(TypeOfFacet.class); return typeOfFacet.valueSpec(); }
debugBuilder.indent(); for (final Class<? extends Facet> facet : facets) { debugBuilder.appendln(objectAction.getFacet(facet).toString());
private static String nameFor(final ObjectAction noAction) { final String actionName = noAction.getName(); if (actionName != null) { return actionName; } final NamedFacet namedFacet = noAction.getFacet(NamedFacet.class); if (namedFacet != null) { return namedFacet.value(); } return "(no name)"; }
/** * Bookmarkable if the {@link ObjectAction action} has a {@link BookmarkPolicyFacet bookmark} policy * of {@link BookmarkPolicy#AS_ROOT root}, and has safe {@link ObjectAction#getSemantics() semantics}. */ public boolean isBookmarkable() { final ObjectAction action = getAction(); final BookmarkPolicyFacet bookmarkPolicy = action.getFacet(BookmarkPolicyFacet.class); final boolean safeSemantics = action.getSemantics().isSafeInNature(); return bookmarkPolicy.value() == BookmarkPolicy.AS_ROOT && safeSemantics; }
private boolean isToBeExecutedRemotely(final ObjectAdapter targetAdapter) { final ExecutedFacet facet = objectAction.getFacet(ExecutedFacet.class); final boolean localOverride = (facet.value() == Where.LOCALLY); if (localOverride) { return false; } final boolean remoteOverride = (facet.value() == Where.REMOTELY); if (remoteOverride) { return true; } if (targetAdapter.getSpecification().isService()) { return true; } return targetAdapter.isPersistent(); }
private void addIfReturnsSubtype(final ObjectAction serviceAction, final List<ObjectAction> matchingActionsToAppendTo) { final ObjectSpecification returnType = serviceAction.getReturnType(); if (returnType == null) { return; } if (returnType.isCollection()) { final TypeOfFacet facet = serviceAction.getFacet(TypeOfFacet.class); if (facet != null) { final ObjectSpecification elementType = facet.valueSpec(); addIfReturnsSubtype(serviceAction, elementType, matchingActionsToAppendTo); } } else { addIfReturnsSubtype(serviceAction, returnType, matchingActionsToAppendTo); } }
private void collateServiceActions( final ObjectAdapter serviceAdapter, final ActionType actionType, final List<ServiceAndAction> serviceActions) { final ObjectSpecification serviceSpec = serviceAdapter.getSpecification(); // skip if annotated to not be included in repository menu using @DomainService final DomainServiceFacet domainServiceFacet = serviceSpec.getFacet(DomainServiceFacet.class); if (domainServiceFacet != null) { final NatureOfService natureOfService = domainServiceFacet.getNatureOfService(); if (natureOfService == NatureOfService.VIEW_REST_ONLY || natureOfService == NatureOfService.VIEW_CONTRIBUTIONS_ONLY || natureOfService == NatureOfService.DOMAIN) { return; } } for (final ObjectAction objectAction : serviceSpec.getObjectActions( actionType, Contributed.INCLUDED, Filters.<ObjectAction>any())) { // skip if annotated to not be included in repository menu using legacy mechanism if (objectAction.getFacet(NotInServiceMenuFacet.class) != null) { continue; } final MemberOrderFacet memberOrderFacet = objectAction.getFacet(MemberOrderFacet.class); String serviceName = memberOrderFacet != null? memberOrderFacet.name(): null; if(Strings.isNullOrEmpty(serviceName)){ serviceName = serviceSpec.getFacet(NamedFacet.class).value(); } serviceActions.add(new ServiceAndAction(serviceName, serviceAdapter, objectAction)); } }
/** * Bookmarkable if the {@link ObjectAction action} has a {@link BookmarkPolicyFacet bookmark} policy * of {@link BookmarkPolicy#AS_ROOT root}, and has safe {@link ObjectAction#getSemantics() semantics}. */ public boolean isBookmarkable() { final ObjectAction action = getActionMemento().getAction(getSpecificationLoader()); final BookmarkPolicyFacet bookmarkPolicy = action.getFacet(BookmarkPolicyFacet.class); final boolean safeSemantics = action.getSemantics().isSafeInNature(); return bookmarkPolicy.value() == BookmarkPolicy.AS_ROOT && safeSemantics; }
protected void addLinkToElementTypeIfAny() { final TypeOfFacet facet = getObjectFeature().getFacet(TypeOfFacet.class); if (facet == null) { return; } final ObjectSpecification typeOfSpec = facet.valueSpec(); final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ELEMENT_TYPE, typeOfSpec); getLinks().arrayAdd(linkBuilder.build()); }
protected void addLinkToElementTypeIfAny() { final TypeOfFacet facet = getObjectFeature().getFacet(TypeOfFacet.class); if (facet == null) { return; } final ObjectSpecification typeOfSpec = facet.valueSpec(); final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ELEMENT_TYPE, typeOfSpec); getLinks().arrayAdd(linkBuilder.build()); }
protected void addLinkToElementTypeIfAny() { final TypeOfFacet facet = getObjectFeature().getFacet(TypeOfFacet.class); if (facet == null) { return; } final ObjectSpecification typeOfSpec = facet.valueSpec(); final LinkBuilder linkBuilder = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ELEMENT_TYPE, typeOfSpec); getLinks().arrayAdd(linkBuilder.build()); }
public <T extends Facet> void getFacet(final ObjectAction mockAction, final Class<T> facetClass, final T returns) { context.checking(new Expectations() { { allowing(mockAction).getFacet(with(facetClass)); will(returnValue(returns)); } }); }