Package org.projog.core.predicate.udp
Class Indexes
- java.lang.Object
-
- org.projog.core.predicate.udp.Indexes
-
final class Indexes extends java.lang.ObjectSupports term indexing of user defined predicates.See: https://en.wikipedia.org/wiki/Prolog#Term_indexing
-
-
Field Summary
Fields Modifier and Type Field Description private int[]indexableArgsprivate java.lang.ref.SoftReference<Index>[]indexesprivate java.lang.Objectlockprivate ClauseAction[]masterDataprivate static intMAX_INDEXABLE_ARGSMaximum number of arguments of a clause that will be considered indexable.private intnumIndexableArgs
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.Map<java.lang.Object,ClauseAction[]>convertListsToArrays(java.util.Map<java.lang.Object,java.util.List<ClauseAction>> map)(package private) intcountClearedReferences()(package private) intcountReferences()private intcreateBitmask(Term[] args)private IndexcreateIndex(int bitmask)private int[]createPositionsFromBitmask(int bitmask)(package private) intgetClauseCount()IndexgetOrCreateIndex(int bitmask)private java.util.Map<java.lang.Object,java.util.List<ClauseAction>>groupDataByPositions(int[] positions)(package private) ClauseAction[]index(Term[] args)
-
-
-
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
-
masterData
private final ClauseAction[] masterData
-
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
-
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 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()
-
-