private static String determineActionId(final ObjectAction objectAction) { final Identifier identifier = objectAction.getIdentifier(); if (identifier != null) { return identifier.toNameParmsIdentityString(); } // fallback (used for action sets) return objectAction.getId(); }
private static String actionIdFrom(final ObjectAndActionInvocation objectAndActionInvocation) { return objectAndActionInvocation.getAction().getId(); }
public List<ObjectAction> includedActions(final List<ObjectAction> originalActions) { final List<ObjectAction> includedActions = Lists.newArrayList(); for (int i = 0; i < originalActions.size(); i++) { final String id2 = originalActions.get(i).getId(); if (includes(id2)) { includedActions.add(originalActions.get(i)); } } return includedActions; } }
private static String determineActionId(final ObjectAction objectAction) { final Identifier identifier = objectAction.getIdentifier(); if (identifier != null) { return identifier.toNameParmsIdentityString(); } // fallback (used for action sets) return objectAction.getId(); }
@Override public ObjectAction getObjectAction(final ActionType type, final String name, final List<ObjectSpecification> parameters) { if (action != null && action.getId().equals(name)) { return action; } return null; }
private static String determineActionId(final ObjectAction noAction) { final Identifier identifier = noAction.getIdentifier(); if (identifier != null) { return identifier.toNameParmsIdentityString(); } // fallback (used for action sets) return noAction.getId(); }
@Override public ObjectAction getObjectAction(final ActionType type, final String name, final List<ObjectSpecification> parameters) { if (action != null && action.getId().equals(name)) { return action; } return null; }
@Override public ObjectAction getObjectAction(final ActionType type, final String name, final List<ObjectSpecification> parameters) { if (action != null && action.getId().equals(name)) { return action; } return null; }
public static LinkBuilder newLinkToBuilder(final ResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectAction objectAction) { final String typeFullName = objectSpecification.getFullIdentifier(); final String actionId = objectAction.getId(); final String url = "domainTypes/" + typeFullName + "/actions/" + actionId; return LinkBuilder.newBuilder(resourceContext, rel, RepresentationType.ACTION_DESCRIPTION, url); }
private static String deriveId(final ObjectActionParameter objectActionParameter) { return objectActionParameter.getAction().getId() + "-" + objectActionParameter.getName(); }
public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectAction objectAction) { final String domainType = objectSpecification.getSpecId().asString(); final String actionId = objectAction.getId(); final String url = "domain-types/" + domainType + "/actions/" + actionId; return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.ACTION_DESCRIPTION, url); }
Response invokeActionQueryOnly(final String actionId, final JsonRepresentation arguments, Where where) { final ObjectAction action = getObjectActionThatIsVisibleForIntent(actionId, Intent.MUTATE, where); final ActionSemantics.Of actionSemantics = action.getSemantics(); if (actionSemantics != ActionSemantics.Of.SAFE) { throw RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.METHOD_NOT_ALLOWED, "Method not allowed; action '%s' is not query only", action.getId()); } return invokeActionUsingAdapters(action, arguments, SelfLink.INCLUDED); }
Response invokeActionQueryOnly(final String actionId, final JsonRepresentation arguments, Where where) { final ObjectAction action = getObjectActionThatIsVisibleAndUsable(actionId, Intent.ACCESS, where); final ActionSemantics.Of actionSemantics = action.getSemantics(); if (actionSemantics != ActionSemantics.Of.SAFE) { throw RestfulObjectsApplicationException.create(HttpStatusCode.METHOD_NOT_ALLOWED, "Method not allowed; action '%s' is not query only", action.getId()); } return invokeActionUsingAdapters(action, arguments); }
public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectAction objectAction) { final String domainType = objectSpecification.getSpecId().asString(); final String actionId = objectAction.getId(); final String url = "domain-types/" + domainType + "/actions/" + actionId; return LinkBuilder.newBuilder(resourceContext, rel.getName(), RepresentationType.ACTION_DESCRIPTION, url); }
public static LinkBuilder newLinkToBuilder(final ResourceContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectActionParameter objectActionParameter) { final String typeFullName = objectSpecification.getFullIdentifier(); final ObjectAction objectAction = objectActionParameter.getAction(); final String actionId = objectAction.getId(); final String paramName = objectActionParameter.getName(); final String url = String.format("domainTypes/%s/actions/%s/params/%s", typeFullName, actionId, paramName); return LinkBuilder.newBuilder(resourceContext, rel, RepresentationType.ACTION_PARAMETER_DESCRIPTION, url).withId(deriveId(objectActionParameter)); }
private void addActions(final ObjectAdapter objectAdapter, final List<ObjectAction> actions, final JsonRepresentation members) { for (final ObjectAction action : actions) { final Consent visibility = action.isVisible(objectAdapter, getInteractionInitiatedBy(), rendererContext.getWhere()); if (!visibility.isAllowed()) { continue; } final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("members["+action.getId()+"]"); final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getRendererContext(), linkFollowSpecs, action.getId(), JsonRepresentation.newMap()); renderer.with(new ObjectAndAction(objectAdapter, action)).usingLinkTo(linkToBuilder); members.mapPut(action.getId(), renderer.render()); } }
Response invokeActionIdempotent(final String actionId, final JsonRepresentation arguments, Where where) { final ObjectAction action = getObjectActionThatIsVisibleForIntent(actionId, Intent.MUTATE, where); final ActionSemantics.Of actionSemantics = action.getSemantics(); if (!actionSemantics.isIdempotentInNature()) { throw RestfulObjectsApplicationException.createWithMessage(HttpStatusCode.METHOD_NOT_ALLOWED, "Method not allowed; action '%s' is not idempotent", action.getId()); } return invokeActionUsingAdapters(action, arguments, SelfLink.EXCLUDED); }
private void addActions(final ObjectAdapter objectAdapter, final List<ObjectAction> actions, final JsonRepresentation members) { for (final ObjectAction action : actions) { final Consent visibility = action.isVisible(getRendererContext().getAuthenticationSession(), objectAdapter, rendererContext.getWhere()); if (!visibility.isAllowed()) { continue; } final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("members["+action.getId()+"]"); final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getRendererContext(), linkFollowSpecs, action.getId(), JsonRepresentation.newMap()); renderer.with(new ObjectAndAction(objectAdapter, action)).usingLinkTo(linkToBuilder); members.mapPut(action.getId(), renderer.render()); } }
public static LinkBuilder newLinkToBuilder(final RendererContext resourceContext, final Rel rel, final ObjectSpecification objectSpecification, final ObjectActionParameter objectActionParameter) { final String domainType = objectSpecification.getSpecId().asString(); final ObjectAction objectAction = objectActionParameter.getAction(); final String actionId = objectAction.getId(); final String paramName = objectActionParameter.getName(); final String url = String.format("domain-types/%s/actions/%s/params/%s", domainType, actionId, paramName); return LinkBuilder.newBuilder(resourceContext, rel.andParam("id", deriveId(objectActionParameter)), RepresentationType.ACTION_PARAMETER_DESCRIPTION, url); }
@Override public String getCssClass(final ScalarModel scalarModel) { final ObjectAdapterMemento adapterMemento = scalarModel.getObjectAdapterMemento(); if (adapterMemento == null) { // shouldn't happen return null; } final ObjectActionParameter actionParameter = scalarModel.getParameterMemento() .getActionParameter(scalarModel.getSpecificationLoader()); final ObjectAction action = actionParameter.getAction(); final String objectSpecId = action.getOnType().getSpecId().asString().replace(".", "-"); final String parmId = actionParameter.getId(); return "isis-" + objectSpecId + "-" + action.getId() + "-" + parmId; }