Zooflow: Search Improvements, Multiple Tokens

This commit is contained in:
Jonathan Jenne
2022-05-18 16:19:51 +02:00
parent bdd729f590
commit bd5d63c234
10 changed files with 262 additions and 383 deletions

View File

@@ -1,70 +1,25 @@
Namespace Search
Public Class SearchToken
Public Enum [ValueType]
AttributeName
AttributeValue
AttributeOperator
End Enum
Public Class AttributeValueToken
Public AttributeTitle As String
Public AttributeId As Integer
Public TermValue As String
Public TermId As Integer
Public Enum [InputMode]
[Default]
[Operator]
Value
End Enum
Public Overrides Function GetHashCode() As Integer
Return (TermId.GetHashCode & AttributeId.GetHashCode).GetHashCode()
End Function
Public Enum [OperatorToken]
Equals
NotEquals
GreaterThan
LessThan
Contains
End Enum
Public MustInherit Class TokenValue
Public Value As Object
Public Type As [ValueType]
Public Overrides Function Equals(obj As Object) As Boolean
Return Me.GetHashCode() = DirectCast(obj, AttributeValueToken).GetHashCode()
End Function
Public Overrides Function ToString() As String
Return Value.ToString()
Return $"{TermValue} ({AttributeTitle})"
End Function
End Class
Public Class AttributeKeyToken
Inherits TokenValue
Public Sub New(pValue As Object)
Value = pValue
Type = ValueType.AttributeName
End Sub
End Class
Public Class AttributeOperatorToken
Inherits TokenValue
Public Sub New(pValue As Object)
Value = pValue
Type = ValueType.AttributeOperator
End Sub
End Class
Public Class AttributeValueToken
Inherits TokenValue
Public Sub New(pValue As Object)
Value = pValue
Type = ValueType.AttributeValue
End Sub
End Class
Public Class DateToken
Inherits TokenValue
Public Sub New(pValue As Object)
Value = pValue
Type = ValueType.AttributeValue
End Sub
End Class
End Class
End Namespace