net.intelie.pipes.SimpleMerger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pipes-api Show documentation
Show all versions of pipes-api Show documentation
Intelie Pipes' API classes and interfaces
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;
}
}