package polly.linkexpander.core;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import de.skuzzle.polly.sdk.eventlistener.MessageEvent;
import polly.linkexpander.core.grabbers.LinkGrabber;
public class LinkGrabberManager {
private List<LinkGrabber> grabbers;
private boolean enabled;
public LinkGrabberManager() {
this.grabbers = new LinkedList<LinkGrabber>();
this.enabled = true;
}
public void addLinkGrabber(LinkGrabber grabber) {
this.grabbers.add(grabber);
}
public boolean isEnabled() {
return this.enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public void processMessageEvent(MessageEvent e) {
if (!this.enabled) {
return;
}
for (LinkGrabber grabber : this.grabbers) {
final Matcher m = grabber.getLinkPattern().matcher(e.getMessage());
if (m.find()) {
final String r = grabber.processMatch(e, m);
if (r != null) {
e.getSource().sendMessage(e.getChannel(), r +
" (" + grabber.getLink(e.getMessage(), m) + ")", this); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}
}
}