private DetailedLink decideWhichToDelete(DetailedLink link1, DetailedLink link2) { String link1ParamType = link1.getRequest().getBody().getType(); String link2ParamType = link2.getRequest().getBody().getType(); //Verify for both links that body is not mandatory if ( ( (link1.getRequest().getBody().isRequired() != null) && (link2.getRequest().getBody().isRequired() != null) ) && ( (Boolean.FALSE.equals(link1.getRequest().getBody().isRequired())) && (Boolean.FALSE.equals(link2.getRequest().getBody().isRequired())) ) ) { if (link1ParamType!=null && link2ParamType==null) { return link2; } if (link1ParamType==null && link2ParamType!=null) { return link1; } } return null; } }
/** * Adds to a link the parameters that are common to all actions, like {@code async} and {@code grace_period.expiry}. * These parameters will be added to all the signatures that have a body of type {@code Action}. * * @param link the link where the parameters will be added */ private void addCommonActionParameters(DetailedLink link) { Request request = link.getRequest(); if (request != null) { org.ovirt.engine.api.model.Body body = request.getBody(); if (body != null) { String type = body.getType(); if (ACTION.equals(type)) { List<ParametersSet> parametersSets = body.getParametersSets(); for (ParametersSet parametersSet : parametersSets) { List<Parameter> parameters = parametersSet.getParameters(); parameters.add(newGracePeriodParameter()); parameters.add(newAsyncActionParameter()); } } } } }
private void handleDelete(String prefix, Collection<DetailedLink> results, Method m) { DetailedLink link = new RsdlBuilder.LinkBuilder().url(prefix) .rel(DELETE) .httpMethod(HttpMethod.DELETE) .build(); Class<?>[] parameterTypes = m.getParameterTypes(); if (parameterTypes.length > 0) { link.getRequest().getBody().setType(parameterTypes[0].getSimpleName()); } addCommonActionParameters(link); addAsyncMatrixParameter(link); results.add(link); }
private void addBodyParams(DetailedLink link, Action action) { if (action.getRequest().getBody() != null) { link.getRequest().getBody().setRequired(action.getRequest().getBody().isRequired()); if (action.getRequest().getBody().getSignatures() != null) { for (Signature signature : action.getRequest().getBody().getSignatures()) { ParametersSet ps = new ParametersSet(); if (signature.getDeprecated() != null) { ps.setDeprecated(signature.getDeprecated()); } if (signature.getDescription() != null) { ps.setDescription(signature.getDescription()); } addBodyParams(ps, signature.getMandatoryArguments().entrySet(), true); addBodyParams(ps, signature.getOptionalArguments().entrySet(), false); link.getRequest().getBody().getParametersSets().add(ps); } } } }