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

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

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

public interface InsertMerger {
    void push(Tree tree);

    void clear();

    Tree get();

    public static void pushMany(InsertMerger[] mergers, Tree[] trees) {
        for (int i = 0; i < Math.min(mergers.length, trees.length); i++)
            mergers[i].push(trees[i]);
    }

    public static void clearMany(InsertMerger[] mergers) {
        for (InsertMerger merger : mergers) {
            merger.clear();
        }
    }

    public static Tree[] getMany(InsertMerger[] mergers) {
        Tree[] trees = new Tree[mergers.length];
        for (int i = 0; i < mergers.length; i++)
            trees[i] = mergers[i].get();
        return trees;
    }

    public static void pushMany(FullMerger[] mergers, Tree[] trees) {
        for (int i = 0; i < Math.min(mergers.length, trees.length); i++)
            mergers[i].push(trees[i]);
    }

    public static void clearMany(FullMerger[] mergers) {
        for (FullMerger merger : mergers) {
            merger.clear();
        }
    }

    public static Tree[] getMany(FullMerger[] mergers) {
        Tree[] trees = new Tree[mergers.length];
        for (int i = 0; i < mergers.length; i++)
            trees[i] = mergers[i].get();
        return trees;
    }


    public abstract static class Base implements InsertMerger {
        @Override
        @SuppressWarnings("unchecked")
        public void push(Tree tree) {
            pushQ((Q) tree);
        }

        public abstract void pushQ(Q tree);

        public abstract Q get();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy