001 /******************************************************************************
002 * Copyright (C) MActor Developers. All rights reserved. *
003 * ---------------------------------------------------------------------------*
004 * This file is part of MActor. *
005 * *
006 * MActor is free software; you can redistribute it and/or modify *
007 * it under the terms of the GNU General Public License as published by *
008 * the Free Software Foundation; either version 2 of the License, or *
009 * (at your option) any later version. *
010 * *
011 * MActor is distributed in the hope that it will be useful, *
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
014 * GNU General Public License for more details. *
015 * *
016 * You should have received a copy of the GNU General Public License *
017 * along with MActor; if not, write to the Free Software *
018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
019 ******************************************************************************/
020 package org.mactor.framework.spec;
021
022 import org.dom4j.Element;
023 import org.mactor.framework.MactorException;
024
025 public class MessagePublishSpec extends SpecNode {
026 @Override
027 public String getType() {
028 return "message_publish";
029 }
030 private String channel;
031 private MessageBuilderSpec messageBuilder;
032 public String getChannel() {
033 return channel;
034 }
035 public static MessagePublishSpec loadSpec(Element element) throws MactorException {
036 if (element == null)
037 return null;
038 MessagePublishSpec s = new MessagePublishSpec();
039 s.name = element.attributeValue("name");
040 s.channel = element.attributeValue("channel");
041 s.messageBuilder = MessageBuilderSpec.loadSpec(element.element("message_builder"));
042 return s;
043 }
044 public Element addToElement(Element parent) {
045 Element e = parent.addElement(getType());
046 e.addAttribute("name", name);
047 e.addAttribute("channel", channel);
048 getMessageBuilder().addToElement(e);
049 return e;
050 }
051 public MessageBuilderSpec getMessageBuilder() {
052 if (messageBuilder == null)
053 messageBuilder = new MessageBuilderSpec();
054 return messageBuilder;
055 }
056 public String getShortDescription() {
057 return "Publisher node - '" + name + "'";
058 }
059 public String getDescription() {
060 return "Channel:" + channel + ". Message builder:(" + messageBuilder.getDescription() + ")";
061 }
062 public void setChannel(String channel) {
063 this.channel = channel;
064 }
065 }