if (dso.getType() != Constants.ITEM) throw new CrosswalkObjectNotSupported("QDCCrosswalk can only crosswalk an Item."); Item item = (Item)dso; init();  DCValue[] dc = item.getMetadata(Item.ANY, Item.ANY, Item.ANY, Item.ANY); List result = new ArrayList(dc.length); for (int i = 0; i < dc.length; i++) {   String qdc = dc[i].schema+"."+ ((dc[i].qualifier == null) ? dc[i].element : (dc[i].element + "." + dc[i].qualifier));  Element elt = (Element)qdc2element.get(qdc);   if (elt == null) { if (dc[i].schema.equals(MetadataSchema.DC_SCHEMA)) log.warn("WARNING: "+myName+": No QDC mapping for \"" + qdc+"\""); } else { Element qe = (Element)elt.clone(); qe.setText(dc[i].value); if (dc[i].language != null) qe.setAttribute("lang", dc[i].language, Namespace.XML_NAMESPACE); result.add(qe); } } return result;
return disseminateListInternal(dso, true);
    public List disseminateList(DSpaceObject dso)        throws CrosswalkException,               IOException, SQLException, AuthorizeException    {        if (dso.getType() != Constants.ITEM)            throw new CrosswalkObjectNotSupported("QDCCrosswalk can only crosswalk an Item.");        Item item = (Item)dso;        init();        DCValue[] dc = item.getMetadata(Item.ANY, Item.ANY, Item.ANY, Item.ANY);        List result = new ArrayList(dc.length);        for (int i = 0; i < dc.length; i++)        {            // Compose qualified DC name - schema.element[.qualifier]            // e.g. "dc.title", "dc.subject.lcc", "lom.Classification.Keyword"            String qdc = dc[i].schema+"."+                         ((dc[i].qualifier == null) ? dc[i].element                            : (dc[i].element + "." + dc[i].qualifier));            Element elt = (Element)qdc2element.get(qdc);            // only complain about missing elements in the DC schema:            if (elt == null)            {                if (dc[i].schema.equals(MetadataSchema.DC_SCHEMA))                    log.warn("WARNING: "+myName+": No QDC mapping for \"" + qdc+"\"");            }            else            {                Element qe = (Element)elt.clone();                qe.setText(dc[i].value);                if (dc[i].language != null)                    qe.setAttribute("lang", dc[i].language, Namespace.XML_NAMESPACE);                result.add(qe);            }        }        return result;    }