mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-12 00:13:56 +00:00
added Poison Pill idiom
This commit is contained in:
1 parent
6366041781
commit
dc0f578f8b
15 files changed
+398
-1
No files matched your search
@@ -0,0 +1,52 @@
|
||||
package com.iluwatar;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Interface that implements the Message pattern and represents an inbound or outbound message as part of an {@link Producer}-{@link Consumer} exchange.
|
||||
*/
|
||||
public interface Message {
|
||||
|
||||
public static final Message POISON_PILL = new Message() {
|
||||
|
||||
@Override
|
||||
public void addHeader(Headers header, String value) {
|
||||
throw poison();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHeader(Headers header) {
|
||||
throw poison();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Headers, String> getHeaders() {
|
||||
throw poison();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBody(String body) {
|
||||
throw poison();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBody() {
|
||||
throw poison();
|
||||
}
|
||||
|
||||
private RuntimeException poison() {
|
||||
return new UnsupportedOperationException("Poison");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public enum Headers {
|
||||
DATE, SENDER
|
||||
}
|
||||
|
||||
public void addHeader(Headers header, String value);
|
||||
public String getHeader(Headers header);
|
||||
public Map<Headers, String> getHeaders();
|
||||
public void setBody(String body);
|
||||
public String getBody();
|
||||
}
|
||||
Reference in new issue
Block a user