Class PhraseItem

All Implemented Interfaces:
HasIndexItem, IndexedItem, TaggableItem, Cloneable
Direct Known Subclasses:
UriItem

public class PhraseItem extends CompositeIndexedItem
A term which contains a phrase - a collection of word terms
Author:
bratseth, havardpe
  • Constructor Details

    • PhraseItem

      public PhraseItem()
      Creates an empty phrase
    • PhraseItem

      public PhraseItem(String indexName)
      Creates an empty phrase which will search the given index
    • PhraseItem

      public PhraseItem(String[] words)
      Creates a phrase containing the given words
  • Method Details

    • getItemType

      public Item.ItemType getItemType()
      Description copied from class: Item
      Return the enumerated type of this item.
      Specified by:
      getItemType in class Item
    • getName

      public String getName()
      Description copied from class: Item
      Returns the name of this item
      Specified by:
      getName in class Item
    • setIndexName

      public void setIndexName(String index)
      Description copied from class: CompositeIndexedItem
      Sets the name of the index to search
      Specified by:
      setIndexName in interface IndexedItem
      Overrides:
      setIndexName in class CompositeIndexedItem
    • setExplicit

      public void setExplicit(boolean explicit)
      Sets whether this was explicitly written as a phrase using quotes by the user
    • isExplicit

      public boolean isExplicit()
      Returns whether this was explicitly written as a phrase using quotes by the user Default is false
    • addItem

      public void addItem(Item item)
      Adds subitem. The word will have its index name set to the index name of this phrase. If the item is a word, it will simply be added, if the item is a phrase, each of the words of the phrase will be added.
      Overrides:
      addItem in class CompositeItem
      Throws:
      IllegalArgumentException - if the given item is not a WordItem or PhraseItem
    • acceptsItemsOfType

      public boolean acceptsItemsOfType(Item.ItemType itemType)
      Overrides:
      acceptsItemsOfType in class CompositeItem
    • addItem

      public void addItem(int index, Item item)
      Description copied from class: CompositeItem
      Inserts the item at a position and increases the index of existing items starting on this position by one
      Overrides:
      addItem in class CompositeItem
    • setItem

      public Item setItem(int index, Item item)
      Description copied from class: CompositeItem
      Replaces the item at the given index.
      Overrides:
      setItem in class CompositeItem
      Parameters:
      index - the (0-base) index of the item to replace
      item - the new item
      Returns:
      the old item at this position. The parent of the old item is not cleared
    • extractSingleChild

      public Optional<Item> extractSingleChild()
      Description copied from class: CompositeItem
      Returns the single child of this, if this can be omitted without changes to recall semantics.
      Overrides:
      extractSingleChild in class CompositeItem
    • setWeight

      public void setWeight(int weight)
      Description copied from class: Item
      Sets the relative importance of this term
      Overrides:
      setWeight in class Item
    • getWordItem

      public WordItem getWordItem(int index)
      Returns a subitem as a word item
      Parameters:
      index - the (0-base) index of the item to return
      Throws:
      IndexOutOfBoundsException - if there is no subitem at index
    • getBlockItem

      public BlockItem getBlockItem(int index)
      Returns a subitem as a block item,
      Parameters:
      index - the (0-base) index of the item to return
      Throws:
      IndexOutOfBoundsException - if there is no subitem at index
    • encodeThis

      protected void encodeThis(ByteBuffer buffer)
      Description copied from class: CompositeItem
      Encodes just this item, not its regular subitems, to the given buffer.
      Overrides:
      encodeThis in class CompositeIndexedItem
    • encode

      public int encode(ByteBuffer buffer)
      Overrides:
      encode in class CompositeItem
    • shouldParenthesize

      protected boolean shouldParenthesize()
      Returns false, no parenthezes for phrases
      Overrides:
      shouldParenthesize in class CompositeItem
    • appendHeadingString

      protected void appendHeadingString(StringBuilder buffer)
      Phrase items uses a empty heading instead of "PHRASE "
      Overrides:
      appendHeadingString in class Item
    • appendBodyString

      protected void appendBodyString(StringBuilder buffer)
      Description copied from class: Item
      Override to append the item body in the canonical query language of this item. An item is usually represented by the string
       ([itemName] [body])
       
      The body must be appended appended by this method.
      Overrides:
      appendBodyString in class CompositeItem
    • getIndexedString

      public String getIndexedString()
      Description copied from interface: IndexedItem
      Return the searchable term contents of this item.
      Specified by:
      getIndexedString in interface IndexedItem
      Specified by:
      getIndexedString in class CompositeIndexedItem
      Returns:
      a string representation of what is presumably stored in an index which will match this item
    • encodingArity

      protected int encodingArity()
      Overrides:
      encodingArity in class CompositeItem
    • getNumWords

      public int getNumWords()
      Description copied from interface: HasIndexItem
      Returns how many phrase words does this item contain
    • disclose

      public void disclose(Discloser discloser)
      Overrides:
      disclose in class CompositeIndexedItem
    • equals

      public boolean equals(Object other)
      Description copied from class: CompositeItem
      Returns whether this item is of the same class and contains the same state as the given item.
      Overrides:
      equals in class CompositeIndexedItem
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class CompositeIndexedItem