package org.sef4j.callstack.pattern.helpers;
import org.sef4j.callstack.CallStackElt;
import org.sef4j.callstack.pattern.CallStackMatcher;
import org.sef4j.callstack.pattern.CallStackPattern;
/**
* CallStackPattern for always matching rule
*
* this class is final & stateless & multi-thread safe(!) => singleton
*/
public final class AllCallStackPattern extends CallStackPattern {
public static final AllCallStackPattern INSTANCE = new AllCallStackPattern();
public static final AllCallStackPattern instance() { return INSTANCE; }
// ------------------------------------------------------------------------
private AllCallStackPattern() {
}
// ------------------------------------------------------------------------
@Override
public CallStackMatcher matcher() {
return AllCallStackMatcher.INSTANCE;
}
@Override
public String toString() {
return "AllCallStackPattern";
}
// ------------------------------------------------------------------------
private static final class AllCallStackMatcher extends CallStackMatcher {
private static AllCallStackMatcher INSTANCE = new AllCallStackMatcher();
@Override
public boolean isMatchPrefix() {
return true;
}
@Override
public boolean matches() {
return true;
}
@Override
public void onPush(CallStackElt stackElt) {
// do nothing!
}
@Override
public void onPop(CallStackElt stackElt) {
// do nothing!
}
}
}