ingo@945: package de.intevation.flys.artifacts.model;
ingo@945: 
felix@1890: import org.apache.log4j.Logger;
felix@1890: 
ingo@945: import org.w3c.dom.Document;
ingo@945: import org.w3c.dom.Element;
ingo@945: import org.w3c.dom.Node;
ingo@945: 
ingo@945: import de.intevation.artifacts.ArtifactNamespaceContext;
ingo@945: 
sascha@1061: import de.intevation.artifactdatabase.state.DefaultFacet;
ingo@945: import de.intevation.artifactdatabase.state.Facet;
ingo@945: 
ingo@945: import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
ingo@945: 
ingo@945: 
ingo@945: public class ManagedFacetAdapter extends ManagedFacet {
ingo@945: 
ingo@945:     protected Facet facet;
ingo@945: 
sascha@1061:     public ManagedFacetAdapter() {
sascha@1061:     }
ingo@945: 
felix@1890: 
felix@1890:     protected Logger logger = Logger.getLogger(ManagedFacetAdapter.class);
felix@1890: 
ingo@1715:     public ManagedFacetAdapter(
ingo@1715:         Facet   facet,
ingo@1715:         String  uuid,
ingo@1715:         int     pos,
ingo@1715:         int     active,
ingo@1715:         int     visible
ingo@1715:     ) {
ingo@945:         super(
ingo@945:             facet.getName(),
ingo@945:             facet.getIndex(),
ingo@945:             facet.getDescription(),
ingo@945:             uuid,
ingo@945:             pos,
ingo@1715:             active,
ingo@1715:             visible);
ingo@945: 
ingo@945:         this.facet = facet;
ingo@945:     }
ingo@945: 
ingo@945: 
ingo@945:     @Override
ingo@945:     public Node toXML(Document doc) {
ingo@945:         ElementCreator ec = new ElementCreator(
ingo@945:             doc,
ingo@945:             ArtifactNamespaceContext.NAMESPACE_URI,
ingo@945:             ArtifactNamespaceContext.NAMESPACE_PREFIX);
ingo@945: 
ingo@945:         Element e = (Element) facet.toXML(doc);
ingo@945:         ec.addAttr(e, "artifact", getArtifact(), true);
ingo@945:         ec.addAttr(e, "facet", getName(), true);
ingo@945:         ec.addAttr(e, "pos", String.valueOf(getPosition()), true);
ingo@945:         ec.addAttr(e, "active", String.valueOf(getActive()), true);
ingo@1715:         ec.addAttr(e, "visible", String.valueOf(getVisible()), true);
ingo@945: 
ingo@945:         return e;
ingo@945:     }
sascha@1061: 
sascha@1061:     @Override
sascha@1061:     public Facet deepCopy() {
sascha@1061:         ManagedFacetAdapter copy = new ManagedFacetAdapter();
sascha@1061:         copy.set((DefaultFacet)this);
sascha@1061:         copy.set((ManagedFacet)this);
sascha@1061:         copy.facet = facet.deepCopy();
sascha@1061:         return facet;
sascha@1061:     }
ingo@945: }
sascha@3083: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :