private Element writeMetadata( InvMetadata mdata) { Element mdataElem = new Element("metadata", defNS); if (mdata.getMetadataType() != null) mdataElem.setAttribute("metadataType", mdata.getMetadataType()); if (mdata.isInherited()) mdataElem.setAttribute("inherited", "true"); String ns = mdata.getNamespaceURI(); if ((ns != null) && !ns.equals(XMLEntityResolver.CATALOG_NAMESPACE_10)) { Namespace mdataNS = Namespace.getNamespace(mdata.getNamespacePrefix(), ns); mdataElem.addNamespaceDeclaration(mdataNS); if (mdata.hasXlink()) { mdataElem.setAttribute("href", mdata.getXlinkHref(), xlinkNS); if (mdata.getXlinkTitle() != null) mdataElem.setAttribute("title", mdata.getXlinkTitle(), xlinkNS); } else if (mdata.getThreddsMetadata() != null) { writeThreddsMetadata( mdataElem, mdata.getThreddsMetadata()); MetadataConverterIF converter = mdata.getConverter(); if ((converter != null) && mdata.getContentObject() != null) { if (mdata.getContentObject() instanceof Element) { // special case Element mdataOrg = (Element) mdata.getContentObject(); List<Element> children = mdataOrg.getChildren(); for ( Element child : children ) { converter.addMetadataContent(mdataElem, mdata.getContentObject());
/** * Put metadata into canonical form. * All non-inherited thredds metadata put into single metadata element, pointed to by getLocalMetadata(). * All inherited thredds metadata put into single metadata element, pointed to by getLocalMetadataInherited(). * This is needed to do reliable editing. */ protected void canonicalize() { List<InvMetadata> whatsLeft = new ArrayList<>(); List<InvMetadata> original = new ArrayList<>(tm.metadata); // get copy of metadata tm.metadata = new ArrayList<>(); // transfer all non-inherited thredds metadata to tm // transfer all inherited thredds metadata to tmi for (InvMetadata m : original) { if (m.isThreddsMetadata() && !m.isInherited() && !m.hasXlink()) { ThreddsMetadata nested = m.getThreddsMetadata(); tm.add(nested, false); } else if (m.isThreddsMetadata() && m.isInherited() && !m.hasXlink()) { ThreddsMetadata nested = m.getThreddsMetadata(); tmi.add(nested, true); } else { whatsLeft.add(m); } } // non ThreddsMetadata goes into tm tm.metadata.addAll(whatsLeft); }
/** * get the content object, may be null * @return the content object, or null */ public Object getContentObject() { finish(); return contentObject; }
/** * Override Object.hashCode() to implement equals. */ public int hashCode() { if (hashCode == 0) { int result = 17; if (null != getNamespaceURI()) result = 37 * result + getNamespaceURI().hashCode(); if (null != getXlinkHref()) result = 37 * result + getXlinkHref().hashCode(); if (null != getXlinkTitle()) result = 37 * result + getXlinkTitle().hashCode(); if (null != getMetadataType()) result = 37 * result + getMetadataType().hashCode(); result = 37 * result + (isInherited() ? 1 : 0); // if (isThreddsMetadata) // result = 37*result + getThreddsMetadata().hashCode(); hashCode = result; } return hashCode; }
if (meta.isInherited() || inheritAll) { if (!meta.isThreddsMetadata()) { metadata.add(meta); } else { if (debugInherit) System.out.println(" add metadata Element " + tmd.isInherited() + " " + meta); meta.finish(); // make sure XLink is read in. transfer2PublicMetadata(meta.getThreddsMetadata(), inheritAll); metadata.add(meta);
boolean gotSomeMetadata = false; for (InvMetadata m : metadata) { if (m.hasXlink()) gotSomeMetadata = true; buff.append("<h3>Metadata:</h3>\n<ul>\n"); for (InvMetadata m : metadata) { String type = (m.getMetadataType() == null) ? "" : m.getMetadataType(); if (m.hasXlink()) { String title = (m.getXlinkTitle() == null) ? "Type " + type : m.getXlinkTitle(); String mdLink = resolveRelativeUrls ? makeHrefResolve(ds, m.getXlinkHref(), title) : makeHref(m.getXlinkHref(), title); buff.append(" <li> ").append(mdLink).append("\n");
List<InvMetadata> metadatas = datasetNode.getMetadata(); for (InvMetadata metadata : metadatas) { System.out.println(" metadata.getContent() = " + metadata.getContentObject()); System.out.println(" metadata.getExternalReference() = " + metadata.getXlinkURI()); System.out.println(" metadata.isContainedContent() = " + metadata.getContentObject() != null); if (metadata.isThreddsMetadata()) { thredds.catalog.ThreddsMetadata threddsMD = metadata.getThreddsMetadata(); if (threddsMD != null) { System.out.println(" threddsMD.getAuthority() = " + threddsMD.getAuthority());
InvDatasetImpl curParentDataset = ( (InvDatasetImpl) curMdata.getParentDataset()); cgcList = (List) curMdata.getContentObject(); for ( int j = 0; j < cgcList.size(); j++) InvMetadata md = new InvMetadata( genTopDs, null, XMLEntityResolver.CATALOG_NAMESPACE_10, "", true, true, null, tm); curGenDataset.getLocalMetadata().addMetadata( md);
if (inlineElements.size() > 0) { contentObj = metaConverter.readMetadataContent(dataset, mdataElement); return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, metaConverter, contentObj); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, metaConverter); if (inlineElements.size() > 0) { return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, this, mdataElement); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, null); ThreddsMetadata tmg = new ThreddsMetadata(false); readThreddsMetadata(catalog, dataset, mdataElement, tmg); return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, true, this, tmg); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, true, this);
if ( (curMetadata.getMetadataType() != null) && curMetadata.getMetadataType().equals( MetadataType.CATALOG_GEN_CONFIG.toString() ) ) else if ( (curMetadata.getNamespaceURI() != null) && curMetadata.getNamespaceURI().equals( CatalogGenConfig.CATALOG_GEN_CONFIG_NAMESPACE_URI_0_5 ))
public Object readMetadataContent(InvDataset dataset, org.jdom2.Element mdataElement) { InvMetadata m = readMetadata(dataset.getParentCatalog(), (InvDatasetImpl) dataset, mdataElement); return m.getThreddsMetadata(); }
/** * Get the metadata elements of the specified type. * * @param want find this metadata type * @return List of InvMetadata objects. List may be empty but not null. */ public java.util.List<InvMetadata> getMetadata(thredds.catalog.MetadataType want) { List<InvMetadata> result = new ArrayList<InvMetadata>(); for (InvMetadata m : getMetadata()) { MetadataType mtype = MetadataType.getType(m.getMetadataType()); if (mtype == want) result.add(m); } return result; }
m.check(out);
/** * Override Object.hashCode() to implement equals. */ public int hashCode() { if (hashCode == 0) { int result = 17; if (null != getNamespaceURI()) result = 37 * result + getNamespaceURI().hashCode(); if (null != getXlinkHref()) result = 37 * result + getXlinkHref().hashCode(); if (null != getXlinkTitle()) result = 37 * result + getXlinkTitle().hashCode(); if (null != getMetadataType()) result = 37 * result + getMetadataType().hashCode(); result = 37 * result + (isInherited() ? 1 : 0); // if (isThreddsMetadata) // result = 37*result + getThreddsMetadata().hashCode(); hashCode = result; } return hashCode; }
if (meta.isInherited() || inheritAll) { if (!meta.isThreddsMetadata()) { metadata.add(meta); } else { if (debugInherit) System.out.println(" add metadata Element " + tmd.isInherited() + " " + meta); meta.finish(); // make sure XLink is read in. transfer2PublicMetadata(meta.getThreddsMetadata(), inheritAll); metadata.add(meta);
boolean gotSomeMetadata = false; for (InvMetadata m : metadata) { if (m.hasXlink()) gotSomeMetadata = true; buff.append("<h3>Metadata:</h3>\n<ul>\n"); for (InvMetadata m : metadata) { String type = (m.getMetadataType() == null) ? "" : m.getMetadataType(); if (m.hasXlink()) { String title = (m.getXlinkTitle() == null) ? "Type " + type : m.getXlinkTitle(); String mdLink = resolveRelativeUrls ? makeHrefResolve(ds, m.getXlinkHref(), title) : makeHref(m.getXlinkHref(), title); buff.append(" <li> ").append(mdLink).append("\n");
InvDatasetImpl curParentDataset = ( (InvDatasetImpl) curMdata.getParentDataset()); cgcList = (List) curMdata.getContentObject(); for ( int j = 0; j < cgcList.size(); j++) InvMetadata md = new InvMetadata( genTopDs, null, XMLEntityResolver.CATALOG_NAMESPACE_10, "", true, true, null, tm); curGenDataset.getLocalMetadata().addMetadata( md);
if (inlineElements.size() > 0) { contentObj = metaConverter.readMetadataContent(dataset, mdataElement); return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, metaConverter, contentObj); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, metaConverter); if (inlineElements.size() > 0) { return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, this, mdataElement); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, false, null); ThreddsMetadata tmg = new ThreddsMetadata(false); readThreddsMetadata(catalog, dataset, mdataElement, tmg); return new InvMetadata(dataset, mtype, namespace.getURI(), namespace.getPrefix(), inherited, true, this, tmg); return new InvMetadata(dataset, href, title, mtype, namespace.getURI(), namespace.getPrefix(), inherited, true, this);
if ( (curMetadata.getMetadataType() != null) && curMetadata.getMetadataType().equals( MetadataType.CATALOG_GEN_CONFIG.toString() ) ) else if ( (curMetadata.getNamespaceURI() != null) && curMetadata.getNamespaceURI().equals( CatalogGenConfig.CATALOG_GEN_CONFIG_NAMESPACE_URI_0_5 ))
public Object readMetadataContent(InvDataset dataset, org.jdom2.Element mdataElement) { InvMetadata m = readMetadata(dataset.getParentCatalog(), (InvDatasetImpl) dataset, mdataElement); return m.getThreddsMetadata(); }