本文整理匯總了Java中com.google.common.collect.ListMultimap.size方法的典型用法代碼示例。如果您正苦於以下問題:Java ListMultimap.size方法的具體用法?Java ListMultimap.size怎麽用?Java ListMultimap.size使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.google.common.collect.ListMultimap
的用法示例。
在下文中一共展示了ListMultimap.size方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: executeFirstMatchConstraint
import com.google.common.collect.ListMultimap; //導入方法依賴的package包/類
private List<? extends Element> executeFirstMatchConstraint(
MemgraphCypherQueryContext ctx,
MatchConstraint<?, ?> matchConstraint,
ExpressionScope scope
) {
try {
List<String> labelNames = getLabelNamesFromMatchConstraint(matchConstraint);
ListMultimap<String, CypherAstBase> propertiesMap = getPropertiesMapFromElementPatterns(ctx, matchConstraint.getPatterns());
Iterable<? extends Element> elements;
if (labelNames.size() == 0 && propertiesMap.size() == 0) {
if (matchConstraint instanceof NodeMatchConstraint) {
elements = ctx.getGraph().getVertices(ctx.getFetchHints(), ctx.getAuthorizations());
} else if (matchConstraint instanceof RelationshipMatchConstraint) {
elements = ctx.getGraph().getEdges(ctx.getFetchHints(), ctx.getAuthorizations());
} else {
throw new MemgraphCypherNotImplemented("unexpected constraint type: " + matchConstraint.getClass().getName());
}
} else {
Query query = ctx.getGraph().query(ctx.getAuthorizations());
if (labelNames.size() > 0) {
Stream<String> labelNamesStream = labelNames.stream()
.map(ctx::normalizeLabelName);
if (matchConstraint instanceof NodeMatchConstraint) {
query = labelNamesStream
.reduce(
query,
(q, labelName) -> q.has(ctx.getLabelPropertyName(), labelName),
(q, q2) -> q
);
} else if (matchConstraint instanceof RelationshipMatchConstraint) {
List<String> normalizedLabelNames = labelNamesStream.collect(Collectors.toList());
query = query.hasEdgeLabel(normalizedLabelNames);
} else {
throw new MemgraphCypherNotImplemented("unexpected constraint type: " + matchConstraint.getClass().getName());
}
}
for (Map.Entry<String, CypherAstBase> propertyMatch : propertiesMap.entries()) {
Object value = ctx.getExpressionExecutor().executeExpression(ctx, propertyMatch.getValue(), scope);
if (value instanceof CypherAstBase) {
throw new MemgraphException("unexpected value: " + value.getClass().getName() + ": " + value);
}
if (value instanceof List) {
query.has(propertyMatch.getKey(), Contains.IN, value);
} else {
query.has(propertyMatch.getKey(), value);
}
}
if (matchConstraint instanceof NodeMatchConstraint) {
elements = query.vertices(ctx.getFetchHints());
} else if (matchConstraint instanceof RelationshipMatchConstraint) {
elements = query.edges(ctx.getFetchHints());
} else {
throw new MemgraphCypherNotImplemented("unexpected constraint type: " + matchConstraint.getClass().getName());
}
}
return Lists.newArrayList(elements);
} catch (MemgraphPropertyNotDefinedException e) {
LOGGER.error(e.getMessage());
return Lists.newArrayList();
}
}