private void updateGeneralGroupOrder(ParameterizedDeclaration declaration, int minGroupOrder) { Optional<ParameterGroupDeclaration> general = declaration.getParameterGroups().stream() .filter(pg -> ((ParameterGroupDeclaration) pg).getName().equals(DEFAULT_GROUP_NAME)).findFirst(); general.map(ParameterGroupDeclaration::getLayoutModel).flatMap(LayoutModel::getOrder).filter(order -> order > minGroupOrder) .ifPresent(order -> general.get() .setLayoutModel(builderFrom(general.get().getLayoutModel()).order(minGroupOrder - 1).build())); }
private int addMissingParameterOrders(List<AbstractParameterDeclaration> declarations) { AtomicInteger minOrder = new AtomicInteger(INITIAL_ORDER); Set<Integer> takenOrders = new HashSet<>(); List<AbstractParameterDeclaration> nonOrderedParams = new ArrayList<>(); declarations.forEach(param -> { LayoutModel layoutModel = param.getLayoutModel(); if (layoutModel != null && layoutModel.getOrder().isPresent()) { takenOrders.add(layoutModel.getOrder().get()); minOrder.set(min(layoutModel.getOrder().get(), minOrder.get())); } else { nonOrderedParams.add(param); } }); AtomicInteger currentOrder = new AtomicInteger(INITIAL_ORDER); nonOrderedParams.forEach(param -> param.setLayoutModel( builderFrom(param.getLayoutModel()) .order(getNextOrder(currentOrder, takenOrders)) .build())); return minOrder.get(); }
private void addQueryModelProperties(OperationDeclaration declaration, Query query) { ParameterDeclaration parameterDeclaration = declaration.getAllParameters() .stream() .filter(p -> p.getModelProperty(ImplementingParameterModelProperty.class).isPresent()) .filter(p -> p.getModelProperty(ImplementingParameterModelProperty.class).get() .getParameter().isAnnotationPresent(MetadataKeyId.class)) .findFirst() .orElseThrow(() -> new IllegalParameterModelDefinitionException( "Query operation must have a parameter annotated with @MetadataKeyId")); parameterDeclaration.addModelProperty(new QueryParameterModelProperty(query.translator())); parameterDeclaration.setLayoutModel(builderFrom(parameterDeclaration.getLayoutModel()).asQuery().build()); }
private void updateGeneralGroupOrder(ParameterizedDeclaration declaration, int minGroupOrder) { Optional<ParameterGroupDeclaration> general = declaration.getParameterGroups().stream() .filter(pg -> ((ParameterGroupDeclaration) pg).getName().equals(DEFAULT_GROUP_NAME)).findFirst(); general.map(ParameterGroupDeclaration::getLayoutModel).flatMap(LayoutModel::getOrder).filter(order -> order > minGroupOrder) .ifPresent(order -> general.get() .setLayoutModel(builderFrom(general.get().getLayoutModel()).order(minGroupOrder - 1).build())); }
private int addMissingParameterOrders(List<AbstractParameterDeclaration> declarations) { AtomicInteger minOrder = new AtomicInteger(INITIAL_ORDER); Set<Integer> takenOrders = new HashSet<>(); List<AbstractParameterDeclaration> nonOrderedParams = new ArrayList<>(); declarations.forEach(param -> { LayoutModel layoutModel = param.getLayoutModel(); if (layoutModel != null && layoutModel.getOrder().isPresent()) { takenOrders.add(layoutModel.getOrder().get()); minOrder.set(min(layoutModel.getOrder().get(), minOrder.get())); } else { nonOrderedParams.add(param); } }); AtomicInteger currentOrder = new AtomicInteger(INITIAL_ORDER); nonOrderedParams.forEach(param -> param.setLayoutModel( builderFrom(param.getLayoutModel()) .order(getNextOrder(currentOrder, takenOrders)) .build())); return minOrder.get(); }
private void addQueryModelProperties(OperationDeclaration declaration, Query query) { ParameterDeclaration parameterDeclaration = declaration.getAllParameters() .stream() .filter(p -> p.getModelProperty(ImplementingParameterModelProperty.class).isPresent()) .filter(p -> p.getModelProperty(ImplementingParameterModelProperty.class).get() .getParameter().isAnnotationPresent(MetadataKeyId.class)) .findFirst() .orElseThrow(() -> new IllegalParameterModelDefinitionException( "Query operation must have a parameter annotated with @MetadataKeyId")); parameterDeclaration.addModelProperty(new QueryParameterModelProperty(query.translator())); parameterDeclaration.setLayoutModel(builderFrom(parameterDeclaration.getLayoutModel()).asQuery().build()); }