public List<SecurityScheme> securedBy(Action action) { final List<SecurityScheme> res = new ArrayList<>(); if (!action.getSecuredBy().isEmpty()) { res.addAll(securitySchemes(action.getSecuredBy(), new Message("securityScheme.undefined", new Locator(action)))); } else if (!action.getResource().getSecuredBy().isEmpty()) { res.addAll(securitySchemes(action.getResource().getSecuredBy(), new Message("securityScheme.undefined", new Locator(action.getResource())))); } else if (!raml.getSecuredBy().isEmpty()) { res.addAll(securitySchemes(raml.getSecuredBy(), new Message("securityScheme.undefined", new Locator()))); } if (res.isEmpty()) { res.add(NULL_SCHEMA); } return res; }
@Override public Object getProperty(Interpreter interp, ST self, Object o, Object property, String propertyName) throws STNoSuchPropertyException { final Action a = (Action) o; switch (propertyName) { case "securitySchemes": if (a.getSecuredBy() != null && !a.getSecuredBy().isEmpty()) { return a.getSecuredBy(); } if (a.getResource().getSecuredBy() != null && !a.getResource().getSecuredBy().isEmpty()) { return a.getResource().getSecuredBy(); } if (raml.getSecuredBy() != null && !raml.getSecuredBy().isEmpty()) { return raml.getSecuredBy(); } return Collections.emptyList(); case "type": return a.getType().toString(); case "responses": return new TreeMap<>(a.getResponses()); case "queryParameters": return new TreeMap<>(a.getQueryParameters()); case "headers": return new TreeMap<>(a.getHeaders()); case "body": return a.getBody() == null ? null : new TreeMap<>(a.getBody()); default: return super.getProperty(interp, self, o, property, propertyName); } } }