package com.fr.plugin.file.submit.oss.fun; import com.fanruan.api.xml.XmlKit; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLReadable; import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLableReader; import java.util.ArrayList; import java.util.List; public class OssSubmitTargetConfig implements XMLable { public static final String XML_TAG = "OssSubmitTargetConfig"; private List targets = new ArrayList(); public void addSubmitTarget(OssSubmitTarget target) { targets.add(target); } public void clearSubmitTargets() { targets.clear(); } public void removeSubmitTarget(OssSubmitTarget target) { targets.remove(target); } public OssSubmitTarget[] getSubmitTargets() { return targets.toArray(new OssSubmitTarget[0]); } @Override public void readXML(XMLableReader reader) { if (reader.isChildNode()) { reader.readXMLObject(new XMLReadable() { @Override public void readXML(XMLableReader xmLableReader) { if (xmLableReader.isChildNode()) { String tagName = xmLableReader.getTagName(); if (OssSubmitTarget.XML_TAG.equals(tagName)) { OssSubmitTarget target = (OssSubmitTarget)XmlKit.readXMLable(xmLableReader); targets.add(target); } } } }); } } @Override public void writeXML(XMLPrintWriter writer) { for (OssSubmitTarget target : targets) { XmlKit.writeXMLable(writer, target, OssSubmitTarget.XML_TAG); } } @Override public Object clone() throws CloneNotSupportedException { OssSubmitTargetConfig cloned = (OssSubmitTargetConfig) super.clone(); List list = new ArrayList(); for (OssSubmitTarget target : targets) { list.add((OssSubmitTarget) target.clone()); } cloned.targets = list; return cloned; } }