private void prependParentName(MetadataElement element, StringBuilder sb) { final MetadataElement owner = element.getParentElement(); if (owner != null) { if (owner != rootElement) { prependParentName(owner, sb); } else if (owner.getName() != null) { sb.insert(0, owner.getName()).append("."); } } if (element.getName() != null) { sb.append(element.getName()).append("."); } } }
@Override public void visit(MetadataElement group) { visitedList.add(group.getName()); }
@Override public AbstractTN getChildAt(int index) { final MetadataElement elem = metadataElement.getElementAt(index); return new IdentificationTN(elem.getName(), elem, this); }
public Object getValueAt(int i) { if (i == NAME_COL_INDEX) { return element.getName(); } else if (i == VALUE_COL_INDEX) { return ""; } else if (i == TYPE_COL_INDEX) { } else if (i == UNIT_COL_INDEX) { } else if (i == DESCR_COL_INDEX) { return element.getDescription() != null ? element.getDescription() : ""; } return ""; }
@Override public AbstractTN getChildAt(int index) { return new MetadataTN(metadataElement.getName(), metadataElement.getElementAt(index), this); }
private static void removeUnusedMetadata(final MetadataElement root) { final MetadataElement[] elems = root.getElements(); for (MetadataElement elem : elems) { final String name = elem.getName(); boolean keep = false; for (String toKeep : elemsToKeep) { if (name.equals(toKeep)) { keep = true; break; } } if (!keep) { root.removeElement(elem); elem.dispose(); } } } }
private static String createDefaultFileName(ProductMetadataView productMetadataView) { return FileUtils.getFilenameWithoutExtension(productMetadataView.getProduct().getName()) + "_" + productMetadataView.getMetadataElement().getName() + ".txt"; }
protected void cloneMetadataElements(MetadataElement sourceRoot, MetadataElement destRoot, int level) { for (int i = 0; i < sourceRoot.getNumElements(); i++) { MetadataElement sourceElement = sourceRoot.getElementAt(i); if (level > 0 || isNodeAccepted(sourceElement.getName())) { MetadataElement element = new MetadataElement(sourceElement.getName()); element.setDescription(sourceElement.getDescription()); destRoot.addElement(element); cloneMetadataElementsAndAttributes(sourceElement, element, level + 1); } } }
private void writeMetadataElement(NFileWriteable ncFile, MetadataElement element, NVariable ncVariable, String prefix) throws IOException { for (int i = 0; i < element.getNumAttributes(); i++) { MetadataAttribute attribute = element.getAttributeAt(i); writeMetadataAttribute(ncFile, attribute, ncVariable, prefix); } for (int i = 0; i < element.getNumElements(); i++) { MetadataElement subElement = element.getElementAt(i); final String subElementName = subElement.getName(); if (!isGlobalAttributesElement(subElementName)) { final String name; if (prefix.isEmpty()) { name = subElementName; } else { name = prefix + SPLITTER + subElementName; } writeMetadataElement(ncFile, subElement, ncVariable, name); } } }
private ProductNodeSubsetPane createAnnotationSubsetPane() { final MetadataElement metadataRoot = product.getMetadataRoot(); final MetadataElement[] metadataElements = metadataRoot.getElements(); final String[] metaNodes; if (metadataElements.length == 0) { return null; } // metadata elements must be added to includeAlways list // to ensure that they are selected if isIgnoreMetada is set to false if (givenProductSubsetDef != null && !givenProductSubsetDef.isIgnoreMetadata()) { metaNodes = new String[metadataElements.length]; for (int i = 0; i < metadataElements.length; i++) { final MetadataElement metadataElement = metadataElements[i]; metaNodes[i] = metadataElement.getName(); } } else { metaNodes = new String[0]; } final String[] includeNodes = StringUtils.addToArray(metaNodes, Product.HISTORY_ROOT_NAME); return new ProductNodeSubsetPane(metadataElements, includeNodes, true); }
static void assertCorrectNameAndNoAttributes(MetadataElement metadataElement) { assertNotNull(metadataElement); assertEquals("sources", metadataElement.getName()); assertEquals(0, metadataElement.getNumAttributes()); }
/** * Gets an estimated, raw storage size in bytes of this product node. * * @param subsetDef if not <code>null</code> the subset may limit the size returned * * @return the size in bytes. */ @Override public long getRawStorageSize(ProductSubsetDef subsetDef) { if (subsetDef != null && !subsetDef.containsNodeName(getName())) { return 0L; } long size = 0; for (int i = 0; i < getNumElements(); i++) { size += getElementAt(i).getRawStorageSize(subsetDef); } for (int i = 0; i < getNumAttributes(); i++) { size += getAttributeAt(i).getRawStorageSize(subsetDef); } return size; }
public void testCreateMetadataElement() { MetadataElement elem; String suffix; suffix = "suffix"; elem = BaseRecord.createMetadataElement("name", suffix); assertNotNull(elem); assertEquals("name suffix", elem.getName()); suffix = " "; elem = BaseRecord.createMetadataElement("name", suffix); assertNotNull(elem); assertEquals("name", elem.getName()); suffix = ""; elem = BaseRecord.createMetadataElement("name", suffix); assertNotNull(elem); assertEquals("name", elem.getName()); suffix = null; elem = BaseRecord.createMetadataElement("name", suffix); assertNotNull(elem); assertEquals("name", elem.getName()); } }
public MetadataElement createDeepClone() { MetadataElement clone = new MetadataElement(getName()); clone.setDescription(getDescription()); MetadataAttribute[] attributes = getAttributes(); for (MetadataAttribute attribute : attributes) { clone.addAttribute(attribute.createDeepClone()); } MetadataElement[] elements = getElements(); for (MetadataElement element : elements) { clone.addElement(element.createDeepClone()); } return clone; }
private void writeMetadataElement(int locationID, MetadataElement element) throws IOException { int groupID = createH5G(locationID, element.getName()); try { for (int i = 0; i < element.getNumAttributes(); i++) { MetadataAttribute attribute = element.getAttributeAt(i); writeMetadataAttribute(groupID, attribute); } for (int i = 0; i < element.getNumElements(); i++) { MetadataElement subElement = element.getElementAt(i); writeMetadataElement(groupID, subElement); } } catch (IOException e) { throw e; } finally { closeH5G(groupID); } }
static void assertInputElementAt(int index, String inputName, MetadataElement metadataElement) { final MetadataElement productElement = metadataElement.getElementAt(index); assertEquals("source." + Integer.toString(index), productElement.getName()); final MetadataAttribute nameAttribute = productElement.getAttribute("name"); assertNotNull(nameAttribute); assertEquals(inputName, nameAttribute.getData().getElemString()); }
private void addMetadataElements(final MetadataElement[] elementes, final Element mdElem) { //Übernommen if (elementes == null) { return; } Debug.assertNotNull(mdElem); for (MetadataElement element : elementes) { final Element newElem = new Element(DimapProductConstants.TAG_METADATA_ELEMENT); newElem.setAttribute(DimapProductConstants.ATTRIB_NAME, element.getName()); final String description = element.getDescription(); if (description != null) { newElem.setAttribute(DimapProductConstants.ATTRIB_DESCRIPTION, description); } addMetadataAttributes(element.getAttributes(), newElem); addMetadataElements(element.getElements(), newElem); mdElem.addContent(newElem); } }
@Test public void testAsMetadataElement_noMetadataContained() { final GlobalMetadata globalMetadata = new GlobalMetadata(); final MetadataElement metadataElement = globalMetadata.asMetadataElement(); assertNotNull(metadataElement); assertEquals("Processing_Graph", metadataElement.getName()); assertEquals(0, metadataElement.getNumAttributes()); }
@Test public void testAsMetadataElement() throws ParseException { final BinningOp binningOp = createBinningOp(); final GlobalMetadata globalMetadata = GlobalMetadata.create(binningOp); final MetadataElement processingGraphElement = globalMetadata.asMetadataElement(); assertNotNull(processingGraphElement); assertEquals("Processing_Graph", processingGraphElement.getName()); final MetadataElement node_0_Element = processingGraphElement.getElement("node.0"); assertNotNull(node_0_Element); final MetadataElement parameterElement = node_0_Element.getElement("parameters"); assertEquals(11, parameterElement.getNumAttributes()); // @todo 2 tb/tb check for other meta elements 2014-10-10 final MetadataAttribute software_qualified_name = parameterElement.getAttribute("software_qualified_name"); assertNotNull(software_qualified_name); assertEquals("org.esa.beam.binning.operator.BinningOp", software_qualified_name.getData().getElemString()); }
@Test public void testMetadata() throws IOException { final String headerContent = createHeaderFileContent(""); final File headerFile = createHeaderAndImageFile(headerContent, PRODUCT_NAME); final EnviProductReaderPlugIn plugIn = new EnviProductReaderPlugIn(); final ProductReader reader = plugIn.createReaderInstance(); product = reader.readProductNodes(headerFile, null); assertNotNull(product); MetadataElement metadataRoot = product.getMetadataRoot(); assertEquals(1, metadataRoot.getNumElements()); MetadataElement headerElem = metadataRoot.getElementAt(0); assertNotNull(headerElem); assertEquals("Header", headerElem.getName()); String[] attributeNames = headerElem.getAttributeNames(); String[] expected = new String[]{ "description", "samples", "lines", "bands", "header offset", "file type", "data type", "interleave", "sensor type", "byte order", "data ignore value", "map info", "projection info", "wavelength", "fwhm", "wavelength units", "band names", "classes", "class lookup", "class names" }; assertArrayEquals(expected, attributeNames); }