Search in sources :

Example 16 with PLink

use of jcog.pri.PLink in project narchy by automenta.

the class AtomicExec method apply.

@Override
@Nullable
public Task apply(Task x, NAR n) {
    // TODO handle CMD's
    Task y = exePrefilter(x);
    if (y == null)
        // pass-through to reasoner
        return x;
    if (y != x)
        // transformed
        return y;
    x = y;
    if (x.isCommand()) {
        // immediately execute
        exe.accept(x.term(), n);
        // absorbed
        return null;
    } else {
        active.put(new PLink(x.term().concept(), /* incase it contains temporal, we will dynamically match task anyway on invocation */
        x.priElseZero()));
        enable(n);
        return x;
    }
}
Also used : PLink(jcog.pri.PLink) Task(nars.Task) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

PLink (jcog.pri.PLink)16 Test (org.junit.jupiter.api.Test)6 ArrayBag (jcog.bag.impl.ArrayBag)4 PriReference (jcog.pri.PriReference)4 PLinkArrayBag (jcog.bag.impl.PLinkArrayBag)3 DefaultHijackBag (jcog.bag.impl.hijack.DefaultHijackBag)3 Term (nars.term.Term)2 NotNull (org.jetbrains.annotations.NotNull)2 Nullable (org.jetbrains.annotations.Nullable)2 Sets (com.google.common.collect.Sets)1 PhantomReference (java.lang.ref.PhantomReference)1 ReferenceQueue (java.lang.ref.ReferenceQueue)1 SoftReference (java.lang.ref.SoftReference)1 WeakReference (java.lang.ref.WeakReference)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 List (java.util.List)1 Set (java.util.Set)1 TreeSet (java.util.TreeSet)1 java.util.concurrent (java.util.concurrent)1