@Override public ObjectActionParameter getParameterByName(final String paramName) { final List<ObjectActionParameter> allParameters = getParameters(); for (int i = 0; i < allParameters.size(); i++) { final ObjectActionParameter param = allParameters.get(i); if (Objects.equal(paramName, param.getName())) { return param; } } return null; }
private static String actionArgumentsFrom(final ObjectAndActionInvocation objectAndActionInvocation) { final StringBuilder buf = new StringBuilder(); final List<ObjectActionParameter> parameters = objectAndActionInvocation.getAction().getParameters(); final List<ObjectAdapter> argAdapters = objectAndActionInvocation.getArgAdapters(); if(parameters.size() == argAdapters.size()) { for (int i = 0; i < parameters.size(); i++) { final ObjectActionParameter param = parameters.get(i); final ObjectAdapter argAdapter = argAdapters.get(i); if(buf.length() > 0) { buf.append(","); } buf.append(param.getName()).append("="); buf.append(abbreviated(titleOf(argAdapter), 8)); } } return buf.toString(); }
private static String deriveId(final ObjectActionParameter objectActionParameter) { return objectActionParameter.getAction().getId() + "-" + objectActionParameter.getName(); }
@Override public String getName(final ScalarModel scalarModel) { return scalarModel.getParameterMemento().getActionParameter().getName(); }
private static String deriveId(final ObjectActionParameter objectActionParameter) { return objectActionParameter.getAction().getId() + "-" + objectActionParameter.getName(); }
private static String deriveId(final ObjectActionParameter objectActionParameter) { return objectActionParameter.getAction().getId() + "-" + objectActionParameter.getName(); }
@Override public String getName(final ScalarModel scalarModel) { return scalarModel.getParameterMemento().getActionParameter(scalarModel.getSpecificationLoader()).getName(); }
@Override public String getName(final ScalarModel scalarModel) { return scalarModel.getParameterMemento().getActionParameter(scalarModel.getSpecificationLoader()).getName(); }
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)); }
public static List<ObjectAdapter> parseArguments(final ResourceContext resourceContext, final ObjectAction action, final JsonRepresentation arguments) { final List<JsonRepresentation> argList = argListFor(action, arguments); final List<ObjectAdapter> argAdapters = Lists.newArrayList(); final List<ObjectActionParameter> parameters = action.getParameters(); for (int i = 0; i < argList.size(); i++) { final String paramName = parameters.get(i).getName(); final JsonRepresentation arg = argList.get(i); final ObjectSpecification paramSpec = parameters.get(i).getSpecification(); try { final ObjectAdapter objectAdapter = objectAdapterFor(resourceContext, paramSpec, arg); argAdapters.add(objectAdapter); } catch (final ExpectedStringRepresentingValueException e) { throw RestfulObjectsApplicationException.create(HttpStatusCode.BAD_REQUEST, "Action '%s', argument %s should be a URL encoded string representing a value of type %s", action.getId(), paramName, resourceFor(paramSpec)); } catch (final ExpectedMapRepresentingLinkException e) { throw RestfulObjectsApplicationException.create(HttpStatusCode.BAD_REQUEST, "Action '%s', argument %s should be a map representing a link to reference of type %s", action.getId(), paramName, resourceFor(paramSpec)); } } return argAdapters; }
@Override public void process(final Request request) { final String objectId = request.getOptionalProperty(OBJECT); final String methodName = request.getRequiredProperty(METHOD); final String field = request.getOptionalProperty(PARAMETER_NUMBER); final ObjectAdapter object = MethodsUtils.findObject(request.getContext(), objectId); final ObjectAction action = MethodsUtils.findAction(object, methodName); final List<ObjectActionParameter> parameters = action.getParameters(); int index; if (field == null) { index = 0; } else { index = Integer.valueOf(field).intValue() - 1; } if (index < 0 || index >= parameters.size()) { throw new ScimpiException("Parameter numbers should be between 1 and " + parameters.size() + ": " + index); } request.appendAsHtmlEncoded(parameters.get(index).getName()); }
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); }
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 void addActionArgs( final ObjectAction objectAction, final ActionDto actionDto, final ObjectAdapter[] argAdapters) { final String actionId = CommandUtil.memberIdentifierFor(objectAction); final ObjectSpecification onType = objectAction.getOnType(); final String objectType = onType.getSpecId().asString(); final String localId = objectAction.getIdentifier().toNameIdentityString(); actionDto.setLogicalMemberIdentifier(objectType + "#" + localId); actionDto.setMemberIdentifier(actionId); List<ObjectActionParameter> actionParameters = objectAction.getParameters(); for (int paramNum = 0; paramNum < actionParameters.size(); paramNum++) { final ObjectActionParameter actionParameter = actionParameters.get(paramNum); final String parameterName = actionParameter.getName(); final Class<?> paramType = actionParameter.getSpecification().getCorrespondingClass(); final ObjectAdapter argAdapter = argAdapters[paramNum]; final Object arg = argAdapter != null? argAdapter.getObject(): null; final ParamsDto parameters = CommandDtoUtils.parametersFor(actionDto); final List<ParamDto> parameterList = parameters.getParameter(); ParamDto paramDto = CommonDtoUtils.newParamDto( parameterName, paramType, arg, bookmarkService); parameterList.add(paramDto); } }
@Override protected void addPropertiesSpecificToFeature() { representation.mapPut("name", getObjectFeature().getName()); representation.mapPut("number", getObjectFeature().getNumber()); representation.mapPut("optional", getObjectFeature().isOptional()); final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class); if (maxLength != null && !maxLength.isNoop()) { representation.mapPut("maxLength", maxLength.value()); } }
@Override protected void addPropertiesSpecificToFeature() { representation.mapPut("name", getObjectFeature().getName()); representation.mapPut("number", getObjectFeature().getNumber()); representation.mapPut("optional", getObjectFeature().isOptional()); final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class); if (maxLength != null && !maxLength.isNoop()) { representation.mapPut("maxLength", maxLength.value()); } }
private Object paramDetails(final ObjectActionParameter param) { final JsonRepresentation paramRep = JsonRepresentation.newMap(); paramRep.mapPut("num", param.getNumber()); paramRep.mapPut("id", param.getId()); paramRep.mapPut("name", param.getName()); paramRep.mapPut("description", param.getDescription()); final Object paramChoices = choicesFor(param); if (paramChoices != null) { paramRep.mapPut("choices", paramChoices); } final Object paramDefault = defaultFor(param); if (paramDefault != null) { paramRep.mapPut("default", paramDefault); } return paramRep; }
private Object paramDetails(final ObjectActionParameter param) { final JsonRepresentation paramRep = JsonRepresentation.newMap(); paramRep.mapPut("num", param.getNumber()); paramRep.mapPut("id", param.getId()); paramRep.mapPut("name", param.getName()); paramRep.mapPut("description", param.getDescription()); final Object paramChoices = choicesFor(param); if (paramChoices != null) { paramRep.mapPut("choices", paramChoices); } final Object paramDefault = defaultFor(param); if (paramDefault != null) { paramRep.mapPut("default", paramDefault); } return paramRep; }
@Override protected void addPropertiesSpecificToFeature() { representation.mapPut("name", getObjectFeature().getName()); representation.mapPut("number", getObjectFeature().getNumber()); representation.mapPut("optional", getObjectFeature().isOptional()); final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class); if (maxLength != null && !maxLength.isNoop()) { representation.mapPut("maxLength", maxLength.value()); } }
private Object paramDetails(final ObjectActionParameter param, final InteractionInitiatedBy interactionInitiatedBy) { final JsonRepresentation paramRep = JsonRepresentation.newMap(); paramRep.mapPut("num", param.getNumber()); paramRep.mapPut("id", param.getId()); paramRep.mapPut("name", param.getName()); paramRep.mapPut("description", param.getDescription()); final Object paramChoices = choicesFor(param, interactionInitiatedBy); if (paramChoices != null) { paramRep.mapPut("choices", paramChoices); } final Object paramDefault = defaultFor(param); if (paramDefault != null) { paramRep.mapPut("default", paramDefault); } return paramRep; }