Class Indexes

java.lang.Object
org.projog.core.predicate.udp.Indexes

final class Indexes extends Object
Supports term indexing of user defined predicates.

See: https://en.wikipedia.org/wiki/Prolog#Term_indexing

  • Field Details

    • MAX_INDEXABLE_ARGS

      private static final int MAX_INDEXABLE_ARGS
      Maximum number of arguments of a clause that will be considered indexable.

      Note that this is not the same as the maximum number of arguments that can be included in a single index.

      See Also:
    • masterData

      private final ClauseAction[] masterData
    • lock

      private final Object lock
    • indexes

      private final SoftReference<Index>[] indexes
    • indexableArgs

      private final int[] indexableArgs
    • numIndexableArgs

      private final int numIndexableArgs
  • Constructor Details

    • Indexes

      Indexes(Clauses clauses)
  • Method Details

    • index

      ClauseAction[] index(Term[] args)
    • getClauseCount

      int getClauseCount()
    • createBitmask

      private int createBitmask(Term[] args)
    • getOrCreateIndex

      public Index getOrCreateIndex(int bitmask)
    • createIndex

      private Index createIndex(int bitmask)
    • createPositionsFromBitmask

      private int[] createPositionsFromBitmask(int bitmask)
    • groupDataByPositions

      private Map<Object, List<ClauseAction>> groupDataByPositions(int[] positions)
    • convertListsToArrays

      private Map<Object, ClauseAction[]> convertListsToArrays(Map<Object, List<ClauseAction>> map)
    • countReferences

      int countReferences()
    • countClearedReferences

      int countClearedReferences()