Chain

public static void main(String[] args) {
		new MessageBuilder().newTopic("MessageTopic").with(new CustomeMessageHandler()).newQueue("MessageQueue").with(new CustomeMessageHandler());
	}

	public static class MessageBuilder {

		Map<String, MessageHandler> topics = new HashMap<>();
		Map<String, MessageHandler> queue = new HashMap<>();

		@SuppressWarnings("rawtypes")
		List<NamePair<String, Boolean, MessageHandler, MessageBuilder>> list = new ArrayList<>();

		public NamePair<String, Boolean, MessageHandler, MessageBuilder> newTopic1(String destination) {
			// topics.put(destination);
			NamePair<String, Boolean, MessageHandler, MessageBuilder> pair = new NamePair<>();
			pair.setA(destination);
			pair.setB(true);
			pair.setD(this);
			list.add(pair);
			return pair;
		}

		public NamePair<String, Boolean, MessageHandler, MessageBuilder> newQueue1(String destination) {
			NamePair<String, Boolean, MessageHandler, MessageBuilder> pair = new NamePair<>();
			pair.setA(destination);
			pair.setB(false);
			pair.setD(this);
			list.add(pair);
			return pair;
		}

		public MessageBuilder newTopic(String destination) {
			NamePair<String, Boolean, MessageHandler, MessageBuilder> pair = new NamePair<>();
			pair.setA(destination);
			pair.setB(true);
			list.add(pair);
			return this;
		}

		public MessageBuilder with(MessageHandler handler) {
			list.get(list.size() - 1).setC(handler);
			return this;
		}

		public MessageBuilder newQueue(String destination) {
			NamePair<String, Boolean, MessageHandler, MessageBuilder> pair = new NamePair<>();
			pair.setA(destination);
			pair.setB(false);
			list.add(pair);
			return this;
		}
	}

猜你喜欢

转载自jis117.iteye.com/blog/2320150