package org.geotools.kml.bindings; import javax.xml.namespace.QName; import org.geotools.kml.Folder; import org.geotools.kml.FolderStack; import org.geotools.kml.v22.KML; import org.geotools.xml.AbstractComplexBinding; import org.geotools.xml.Binding; import org.geotools.xml.ElementInstance; import org.geotools.xml.Node; import org.opengis.feature.simple.SimpleFeature; import org.picocontainer.MutablePicoContainer; public class FolderBinding extends AbstractComplexBinding { private final FolderStack folderStack; public FolderBinding(FolderStack folderStack) { this.folderStack = folderStack; } @Override public QName getTarget() { return KML.Folder; } @SuppressWarnings("rawtypes") @Override public Class getType() { return SimpleFeature.class; } @Override public int getExecutionMode() { return Binding.AFTER; } @Override public void initialize(ElementInstance instance, Node node, MutablePicoContainer context) { super.initialize(instance, node, context); folderStack.push(new Folder()); } @Override public Object parse(ElementInstance instance, Node node, Object value) throws Exception { folderStack.pop(); return value; } }