Skip to content

Instantly share code, notes, and snippets.

package org.coffeecrew.tutorials.simplepluginmechanism;
/**
Simple plugin interface.
<p/>
@author Jens Frey
*/
public interface Plugin {
/**
package org.coffeecrew.tutorials.simplepluginmechanism;
/**
Marker Interface to tell this is a plugin running in the PRE_PROCESS phase.
*/
public interface PreProcessable extends Plugin {
}
package org.coffeecrew.tutorials.simplepluginmechanism;
/**
Marker Interface to tell this is a plugin running in the PROCESS phase.
*/
public interface Processable extends Plugin {
}
package org.coffeecrew.tutorials.simplepluginmechanism;
/**
Marker Interface to tell this is a plugin running in the POST_PROCESS phase.
*/
public interface PostProcessable extends Plugin {
}
package org.coffeecrew.tutorials.simplepluginmechanism;
public class PreProcessPlugin implements PreProcessable {
@Override
public String process(String processingToken) {
return processingToken + "[PRE_PROCESS] " + this.getClass().getName() + "\n";
}
}
package org.coffeecrew.tutorials.simplepluginmechanism;
public class ProcessPlugin implements Processable {
@Override
public String process(String processingToken) {
return processingToken + "[PROCESS] " + this.getClass().getName() + "\n";
}
}
package org.coffeecrew.tutorials.simplepluginmechanism;
public class MoreProcessPlugin implements Processable {
@Override
public String process(String processingToken) {
return processingToken + "[PROCESS] " + this.getClass().getName() + "\n";
}
}
package org.coffeecrew.tutorials.simplepluginmechanism;
public class PostProcessPlugin implements PostProcessable {
@Override
public String process(String processingToken) {
return processingToken + "[POST_PROCESS] " + this.getClass().getName() + "\n";
}
}
org.coffeecrew.tutorials.simplepluginmechanism.PreProcessPlugin
org.coffeecrew.tutorials.simplepluginmechanism.ProcessPlugin
org.coffeecrew.tutorials.simplepluginmechanism.MoreProcessPlugin