Verified Owner
Top Description Fields Constructors Methods
org.jabref.logic.search.query

public Class SearchToSqlVisitor

extends SearchBaseVisitor<SqlQueryNode>
Class Inheritance
Imports
java.util.ArrayList, .Collections, .EnumSet, .List, .Locale, java.util.stream.Collectors, org.jabref.model.entry.field.InternalField, .StandardField, org.jabref.model.search.PostgresConstants, .SearchFlags, org.jabref.model.search.query.SearchQuery, .SqlQueryNode, org.jabref.search.SearchBaseVisitor, .SearchParser

Tests are located in org.jabref.logic.search.query.SearchQuerySQLConversionTest

Field Summary

Modifier and TypeField and Description
private int
private static final String
private static final String
private static final String
private final String
private final List<SqlQueryNode>
private final EnumSet<SearchFlags>
private static final String
private final String

Constructor Summary

AccessConstructor and Description
public
SearchToSqlVisitor(String table, EnumSet<SearchFlags> searchBarFlags)

Method Summary

Modifier and TypeMethod and Description
private SqlQueryNode
buildContainsAnyFieldQuery(String operator, String prefixSuffix, String term)

private SqlQueryNode
buildContainsFieldQuery(String field, String operator, String prefixSuffix, String term)

private SqlQueryNode
private SqlQueryNode
buildContainsNegationFieldQuery(String field, String operator, String prefixSuffix, String term)

private SqlQueryNode
private SqlQueryNode
private SqlQueryNode
buildExactFieldQuery(String field, String operator, String term)

private SqlQueryNode
private SqlQueryNode
private static String
escapeTermForSql(String term)

Escapes wildcard characters in the search term for SQL queries.

private SqlQueryNode
getFieldQueryNode(String field, String term, EnumSet<SearchFlags> searchFlags)

private static String
private static void
setFlags(EnumSet<SearchFlags> flags, SearchFlags matchType, boolean caseSensitive, boolean negation)

public SqlQueryNode
public SqlQueryNode
public SqlQueryNode
public SqlQueryNode
public SqlQueryNode
public SqlQueryNode
public SqlQueryNode
Inherited from org.jabref.search.SearchBaseVisitor:
visitOperatorvisitSearchValue

Field Detail

cteCounterback to summary
private int cteCounter
GROUPS_FIELDback to summary
private static final String GROUPS_FIELD
INNER_TABLEback to summary
private static final String INNER_TABLE
MAIN_TABLEback to summary
private static final String MAIN_TABLE
mainTableNameback to summary
private final String mainTableName
nodesback to summary
private final List<SqlQueryNode> nodes
searchBarFlagsback to summary
private final EnumSet<SearchFlags> searchBarFlags
SPLIT_TABLEback to summary
private static final String SPLIT_TABLE
splitValuesTableNameback to summary
private final String splitValuesTableName

Constructor Detail

SearchToSqlVisitorback to summary
public SearchToSqlVisitor(String table, EnumSet<SearchFlags> searchBarFlags)

Method Detail

buildContainsAnyFieldQueryback to summary
private SqlQueryNode buildContainsAnyFieldQuery(String operator, String prefixSuffix, String term)
buildContainsFieldQueryback to summary
private SqlQueryNode buildContainsFieldQuery(String field, String operator, String prefixSuffix, String term)
buildContainsNegationAnyFieldQueryback to summary
private SqlQueryNode buildContainsNegationAnyFieldQuery(String operator, String prefixSuffix, String term)
buildContainsNegationFieldQueryback to summary
private SqlQueryNode buildContainsNegationFieldQuery(String field, String operator, String prefixSuffix, String term)
buildEntryIdQueryback to summary
private SqlQueryNode buildEntryIdQuery(String entryId)
buildExactAnyFieldQueryback to summary
private SqlQueryNode buildExactAnyFieldQuery(String operator, String term)
buildExactFieldQueryback to summary
private SqlQueryNode buildExactFieldQuery(String field, String operator, String term)
buildExactNegationAnyFieldQueryback to summary
private SqlQueryNode buildExactNegationAnyFieldQuery(String operator, String term)
buildExactNegationFieldQueryback to summary
private SqlQueryNode buildExactNegationFieldQuery(String field, String operator, String term)
escapeTermForSqlback to summary
private static String escapeTermForSql(String term)

Escapes wildcard characters in the search term for SQL queries.

  • Escapes \, _, and % for SQL LIKE queries.
getFieldQueryNodeback to summary
private SqlQueryNode getFieldQueryNode(String field, String term, EnumSet<SearchFlags> searchFlags)
getSqlOperatorback to summary
private static String getSqlOperator(EnumSet<SearchFlags> searchFlags)
setFlagsback to summary
private static void setFlags(EnumSet<SearchFlags> flags, SearchFlags matchType, boolean caseSensitive, boolean negation)
visitBinaryExpressionback to summary
public SqlQueryNode visitBinaryExpression(SearchParser.BinaryExpressionContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitBinaryExpression.

Implements org.jabref.search.SearchVisitor.visitBinaryExpression.

Doc from org.jabref.search.SearchBaseVisitor.visitBinaryExpression.

Visit a parse tree produced by the binaryExpression labeled alternative in SearchParser#expression.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitComparisonback to summary
public SqlQueryNode visitComparison(SearchParser.ComparisonContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitComparison.

Implements org.jabref.search.SearchVisitor.visitComparison.

Doc from org.jabref.search.SearchBaseVisitor.visitComparison.

Visit a parse tree produced by SearchParser#comparison.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitComparisonExpressionback to summary
public SqlQueryNode visitComparisonExpression(SearchParser.ComparisonExpressionContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitComparisonExpression.

Implements org.jabref.search.SearchVisitor.visitComparisonExpression.

Doc from org.jabref.search.SearchBaseVisitor.visitComparisonExpression.

Visit a parse tree produced by the comparisonExpression labeled alternative in SearchParser#expression.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitImplicitAndExpressionback to summary
public SqlQueryNode visitImplicitAndExpression(SearchParser.ImplicitAndExpressionContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitImplicitAndExpression.

Implements org.jabref.search.SearchVisitor.visitImplicitAndExpression.

Doc from org.jabref.search.SearchBaseVisitor.visitImplicitAndExpression.

Visit a parse tree produced by the implicitAndExpression labeled alternative in SearchParser#andExpression.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitNegatedExpressionback to summary
public SqlQueryNode visitNegatedExpression(SearchParser.NegatedExpressionContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitNegatedExpression.

Implements org.jabref.search.SearchVisitor.visitNegatedExpression.

Doc from org.jabref.search.SearchBaseVisitor.visitNegatedExpression.

Visit a parse tree produced by the negatedExpression labeled alternative in SearchParser#expression.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitParenExpressionback to summary
public SqlQueryNode visitParenExpression(SearchParser.ParenExpressionContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitParenExpression.

Implements org.jabref.search.SearchVisitor.visitParenExpression.

Doc from org.jabref.search.SearchBaseVisitor.visitParenExpression.

Visit a parse tree produced by the parenExpression labeled alternative in SearchParser#expression.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override
visitStartback to summary
public SqlQueryNode visitStart(SearchParser.StartContext ctx)

Overrides org.jabref.search.SearchBaseVisitor.visitStart.

Implements org.jabref.search.SearchVisitor.visitStart.

Doc from org.jabref.search.SearchBaseVisitor.visitStart.

Visit a parse tree produced by SearchParser#start.

The default implementation returns the result of calling visitChildren on ctx.

Annotations
@Override