Package org.apache.calcite.sql.validate
Class SqlNameMatchers.BaseMatcher
- java.lang.Object
-
- org.apache.calcite.sql.validate.SqlNameMatchers.BaseMatcher
-
- All Implemented Interfaces:
SqlNameMatcher
- Direct Known Subclasses:
SqlNameMatchers.LiberalNameMatcher
- Enclosing class:
- SqlNameMatchers
private static class SqlNameMatchers.BaseMatcher extends java.lang.Object implements SqlNameMatcher
Partial implementation ofSqlNameMatcher
.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
caseSensitive
-
Constructor Summary
Constructors Constructor Description BaseMatcher(boolean caseSensitive)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.List<java.lang.String>
bestMatch()
java.lang.String
bestString()
Returns the most recent match.private java.util.List<java.lang.String>
concat(java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
java.util.Set<java.lang.String>
createSet()
Creates a set that has the same case-sensitivity as this matcher.RelDataTypeField
field(RelDataType rowType, java.lang.String fieldName)
Finds a field with a given name, using the current case-sensitivity, returning null if not found.int
frequency(java.lang.Iterable<java.lang.String> names, java.lang.String name)
Returns how many times a string occurs in a collection.<K extends java.util.List<java.lang.String>,V>
Vget(java.util.Map<K,V> map, java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
Looks up an item in a map.boolean
isCaseSensitive()
Returns whether name matching is case-sensitive.protected boolean
listMatches(java.util.List<java.lang.String> list0, java.util.List<java.lang.String> list1)
protected void
matched(java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
boolean
matches(java.lang.String string, java.lang.String name)
Returns a name matches another.
-
-
-
Method Detail
-
isCaseSensitive
public boolean isCaseSensitive()
Description copied from interface:SqlNameMatcher
Returns whether name matching is case-sensitive.- Specified by:
isCaseSensitive
in interfaceSqlNameMatcher
-
matches
public boolean matches(java.lang.String string, java.lang.String name)
Description copied from interface:SqlNameMatcher
Returns a name matches another.- Specified by:
matches
in interfaceSqlNameMatcher
- Parameters:
string
- Name written in codename
- Name of object we are trying to match- Returns:
- Whether matches
-
listMatches
protected boolean listMatches(java.util.List<java.lang.String> list0, java.util.List<java.lang.String> list1)
-
get
public <K extends java.util.List<java.lang.String>,V> V get(java.util.Map<K,V> map, java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
Description copied from interface:SqlNameMatcher
Looks up an item in a map.- Specified by:
get
in interfaceSqlNameMatcher
-
concat
private java.util.List<java.lang.String> concat(java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
-
matched
protected void matched(java.util.List<java.lang.String> prefixNames, java.util.List<java.lang.String> names)
-
bestMatch
protected java.util.List<java.lang.String> bestMatch()
-
bestString
public java.lang.String bestString()
Description copied from interface:SqlNameMatcher
Returns the most recent match.In the default implementation, throws
UnsupportedOperationException
.- Specified by:
bestString
in interfaceSqlNameMatcher
-
field
public RelDataTypeField field(RelDataType rowType, java.lang.String fieldName)
Description copied from interface:SqlNameMatcher
Finds a field with a given name, using the current case-sensitivity, returning null if not found.- Specified by:
field
in interfaceSqlNameMatcher
- Parameters:
rowType
- Row typefieldName
- Field name- Returns:
- Field, or null if not found
-
frequency
public int frequency(java.lang.Iterable<java.lang.String> names, java.lang.String name)
Description copied from interface:SqlNameMatcher
Returns how many times a string occurs in a collection.Similar to
Collections.frequency(java.util.Collection<?>, java.lang.Object)
.- Specified by:
frequency
in interfaceSqlNameMatcher
-
createSet
public java.util.Set<java.lang.String> createSet()
Description copied from interface:SqlNameMatcher
Creates a set that has the same case-sensitivity as this matcher.- Specified by:
createSet
in interfaceSqlNameMatcher
-
-