
com.structurizr.dsl.FindRelationshipsParser Maven / Gradle / Ivy
The newest version!
package com.structurizr.dsl;
import com.structurizr.model.ModelItem;
import com.structurizr.model.Relationship;
import java.util.Set;
import java.util.stream.Collectors;
final class FindRelationshipsParser extends AbstractParser {
private static final String GRAMMAR = "!relationships ";
private final static int EXPRESSION_INDEX = 1;
Set parse(DslContext context, Tokens tokens) {
// !relationships
if (tokens.hasMoreThan(EXPRESSION_INDEX)) {
throw new RuntimeException("Too many tokens, expected: " + GRAMMAR);
}
String expression = tokens.get(1);
Set modelItems = new ExpressionParser().parseExpression(expression, context);
Set relationships = modelItems.stream().filter(mi -> mi instanceof Relationship).map(mi -> (Relationship)mi).collect(Collectors.toSet());
if (relationships.isEmpty()) {
throw new RuntimeException("No relationships found for expression \"" + expression + "\"");
}
return relationships;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy