package org.esa.s1tbx.io.sentinel1; import org.esa.s1tbx.io.imageio.ImageIOFile; import org.esa.snap.core.datamodel.Band; import org.esa.snap.core.datamodel.MetadataElement; import org.esa.snap.core.datamodel.Product; import org.esa.snap.core.datamodel.ProductData; import java.io.IOException; import java.text.DateFormat; /** * Supports reading directories for level1, level2, and level0 */ public interface Sentinel1Directory { DateFormat sentinelDateFormat = ProductData.UTC.createDateFormat("yyyy-MM-dd HH:mm:ss"); void close() throws IOException; void readProductDirectory() throws IOException; Product createProduct() throws IOException; ImageIOFile.BandInfo getBandInfo(final Band destBand); boolean isSLC(); default MetadataElement getMetadataObject(final MetadataElement origProdRoot, final String metadataObjectName) { final MetadataElement metadataSection = origProdRoot.getElement("XFDU").getElement("metadataSection"); final MetadataElement[] metadataObjects = metadataSection.getElements(); for (MetadataElement elem : metadataObjects) { if (elem.getAttribute("ID").getData().getElemString().equals(metadataObjectName)) { return elem; } } return null; } }