MacroGroup.java
- /**
- *
- * Copyright 2003-2007 Jive Software.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.jivesoftware.smackx.workgroup.ext.macros;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Iterator;
- import java.util.List;
- /**
- * MacroGroup datamodel.
- */
- public class MacroGroup {
- private List<Macro> macros;
- private List<MacroGroup> macroGroups;
- // Define MacroGroup
- private String title;
- public MacroGroup() {
- macros = new ArrayList<Macro>();
- macroGroups = new ArrayList<MacroGroup>();
- }
- public void addMacro(Macro macro) {
- macros.add(macro);
- }
- public void removeMacro(Macro macro) {
- macros.remove(macro);
- }
- public Macro getMacroByTitle(String title) {
- Collection<Macro> col = Collections.unmodifiableList(macros);
- Iterator<Macro> iter = col.iterator();
- while (iter.hasNext()) {
- Macro macro = (Macro)iter.next();
- if (macro.getTitle().equalsIgnoreCase(title)) {
- return macro;
- }
- }
- return null;
- }
- public void addMacroGroup(MacroGroup group) {
- macroGroups.add(group);
- }
- public void removeMacroGroup(MacroGroup group) {
- macroGroups.remove(group);
- }
- public Macro getMacro(int location) {
- return (Macro)macros.get(location);
- }
- public MacroGroup getMacroGroupByTitle(String title) {
- Collection<MacroGroup> col = Collections.unmodifiableList(macroGroups);
- Iterator<MacroGroup> iter = col.iterator();
- while (iter.hasNext()) {
- MacroGroup group = (MacroGroup)iter.next();
- if (group.getTitle().equalsIgnoreCase(title)) {
- return group;
- }
- }
- return null;
- }
- public MacroGroup getMacroGroup(int location) {
- return (MacroGroup)macroGroups.get(location);
- }
- public List<Macro> getMacros() {
- return macros;
- }
- public void setMacros(List<Macro> macros) {
- this.macros = macros;
- }
- public List<MacroGroup> getMacroGroups() {
- return macroGroups;
- }
- public void setMacroGroups(List<MacroGroup> macroGroups) {
- this.macroGroups = macroGroups;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String toXML() {
- StringBuilder buf = new StringBuilder();
- buf.append("<macrogroup>");
- buf.append("<title>" + getTitle() + "</title>");
- buf.append("<macros>");
- for (Macro macro : getMacros())
- {
- buf.append("<macro>");
- buf.append("<title>" + macro.getTitle() + "</title>");
- buf.append("<type>" + macro.getType() + "</type>");
- buf.append("<description>" + macro.getDescription() + "</description>");
- buf.append("<response>" + macro.getResponse() + "</response>");
- buf.append("</macro>");
- }
- buf.append("</macros>");
-
- if (getMacroGroups().size() > 0) {
- buf.append("<macroGroups>");
- for (MacroGroup groups : getMacroGroups()) {
- buf.append(groups.toXML());
- }
- buf.append("</macroGroups>");
- }
- buf.append("</macrogroup>");
- return buf.toString();
- }
- }