private String typesSyntax(Set<Label> types) { StringBuilder inTypesString = new StringBuilder(); if (!types.isEmpty()) { if (types.size() == 1) inTypesString.append(StringConverter.typeLabelToString(types.iterator().next())); else { inTypesString.append(SQUARE_OPEN); inTypesString.append(inTypes.stream().map(StringConverter::typeLabelToString).collect(joining(COMMA_SPACE.toString()))); inTypesString.append(SQUARE_CLOSE); } } return inTypesString.toString(); }
private String argumentsSyntax() { if (arguments == null) return ""; List<String> argumentsList = new ArrayList<>(); StringBuilder argumentsString = new StringBuilder(); for (Parameter param : arguments.getParameters()) { argumentsList.add(str(param, EQUAL, arguments.getArgument(param).get())); } if (!argumentsList.isEmpty()) { argumentsString.append(str(WHERE, SPACE)); if (argumentsList.size() == 1) argumentsString.append(argumentsList.get(0)); else { argumentsString.append(SQUARE_OPEN); argumentsString.append(argumentsList.stream().collect(joining(COMMA_SPACE.toString()))); argumentsString.append(SQUARE_CLOSE); } } return argumentsString.toString(); }
private String conditionsSyntax() { List<String> conditionsList = new ArrayList<>(); // It is important that check for whether each condition is NULL, rather than using the getters. // Because, we want to know the user provided conditions, rather than the default conditions from the getters. // The exception is for arguments. It needs to be set internally for the query object to have default argument // values. However, we can query for .getParameters() to get user provided argument parameters. if (fromID != null) conditionsList.add(str(FROM, SPACE, QUOTE, fromID, QUOTE)); if (toID != null) conditionsList.add(str(TO, SPACE, QUOTE, toID, QUOTE)); if (ofTypes != null) conditionsList.add(ofSyntax()); if (inTypes != null) conditionsList.add(inSyntax()); if (algorithm != null) conditionsList.add(algorithmSyntax()); if (arguments != null && !arguments.getParameters().isEmpty()) conditionsList.add(argumentsSyntax()); return conditionsList.stream().collect(joining(COMMA_SPACE.toString())); }