Macro.java 2.3 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.util.XMLConvertible
 *  com.scene7.is.util.XMLUtil
 *  com.scene7.is.util.error.Scaffold
 */
package com.scene7.is.ps.provider;

import com.scene7.is.ps.provider.RequestHolder;
import com.scene7.is.ps.provider.defs.ModifierEnum;
import com.scene7.is.util.XMLConvertible;
import com.scene7.is.util.XMLUtil;
import com.scene7.is.util.error.Scaffold;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class Macro
implements RequestHolder,
XMLConvertible {
    private final ArrayList modifiers = new ArrayList();
    private final HashMap substPairs = new HashMap();
    private boolean frozen;

    public void setModifier(ModifierEnum modifier, Object value) {
        Scaffold.assert_((boolean)(!this.frozen));
        this.modifiers.add(new ModifierBag(modifier, value));
    }

    @Override
    public void setSubstPair(String name, String value) {
        Scaffold.assert_((boolean)(!this.frozen));
        this.substPairs.put(name, value);
    }

    public Iterator getModifiers() {
        return this.modifiers.iterator();
    }

    public Map getSubstPairs() {
        return this.substPairs;
    }

    public Macro freeze() {
        this.frozen = true;
        return this;
    }

    public Element toXMLElement(Document document) {
        Element root = document.createElement("macro");
        root.appendChild(XMLUtil.createElement((Document)document, (Object)this.modifiers));
        root.appendChild(XMLUtil.createElement((Document)document, (Object)this.substPairs));
        return root;
    }

    public class ModifierBag
    implements XMLConvertible {
        public final ModifierEnum modifier;
        public final Object value;

        ModifierBag(ModifierEnum modifier, Object value) {
            this.modifier = modifier;
            this.value = value;
        }

        public Element toXMLElement(Document document) {
            Element root = document.createElement("modifier");
            root.setAttribute("name", this.modifier.name);
            root.appendChild(XMLUtil.createElement((Document)document, (Object)this.value));
            return root;
        }
    }

}