All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.intelie.pipes.SimpleMerger Maven / Gradle / Ivy

There is a newer version: 0.25.5
Show newest version
package net.intelie.pipes;

public interface SimpleMerger extends InsertMerger {
    void add(Tree tree);

    void remove(Tree tree);

    void clear();

    Tree get();

    abstract class Base implements SimpleMerger {
        @Override
        @SuppressWarnings("unchecked")
        public void add(Tree tree) {
            addQ((Q) tree);
        }

        @Override
        public void push(Tree tree) {
            addQ((Q) tree);
        }

        @Override
        @SuppressWarnings("unchecked")
        public void remove(Tree tree) {
            removeQ((Q) tree);
        }


        public abstract void addQ(Q tree);

        public abstract void removeQ(Q tree);

        public abstract Q get();
    }

    static FullMerger makeFullMerger(SimpleMerger merger) {
        return new FullMerger.Queued() {
            @Override
            public void pushQ(Tree tree) {
                merger.add(tree);
            }

            @Override
            public void popQ(Tree tree) {
                merger.remove(tree);
            }

            @Override
            public void clearQ() {
                merger.clear();
            }

            @Override
            public Tree get() {
                return merger.get();
            }
        };
    }

    static InsertMerger makeInsertMerger(SimpleMerger merger) {
        return merger;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy