Class Indexes


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

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

    • Field Detail

      • 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:
        Constant Field Values
      • lock

        private final java.lang.Object lock
      • indexes

        private final java.lang.ref.SoftReference<Index>[] indexes
      • indexableArgs

        private final int[] indexableArgs
      • numIndexableArgs

        private final int numIndexableArgs
    • Constructor Detail

      • Indexes

        Indexes​(Clauses clauses)
    • Method Detail

      • 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 java.util.Map<java.lang.Object,​java.util.List<ClauseAction>> groupDataByPositions​(int[] positions)
      • convertListsToArrays

        private java.util.Map<java.lang.Object,​ClauseAction[]> convertListsToArrays​(java.util.Map<java.lang.Object,​java.util.List<ClauseAction>> map)
      • countReferences

        int countReferences()
      • countClearedReferences

        int countClearedReferences()