*/
@Override
public Module parse(final Element dcRoot, final Locale locale) {
boolean foundSomething = false;
final DCModule dcm = new DCModuleImpl();
final List<Element> titles = dcRoot.getChildren("title", getDCNamespace());
if (!titles.isEmpty()) {
foundSomething = true;
dcm.setTitles(parseElementList(titles));
}
final List<Element> creators = dcRoot.getChildren("creator", getDCNamespace());
if (!creators.isEmpty()) {
foundSomething = true;
dcm.setCreators(parseElementList(creators));
}
final List<Element> subjects = dcRoot.getChildren("subject", getDCNamespace());
if (!subjects.isEmpty()) {
foundSomething = true;
dcm.setSubjects(parseSubjects(subjects));
}
final List<Element> descriptions = dcRoot.getChildren("description", getDCNamespace());
if (!descriptions.isEmpty()) {
foundSomething = true;
dcm.setDescriptions(parseElementList(descriptions));
}
final List<Element> publishers = dcRoot.getChildren("publisher", getDCNamespace());
if (!publishers.isEmpty()) {
foundSomething = true;
dcm.setPublishers(parseElementList(publishers));
}
final List<Element> contributors = dcRoot.getChildren("contributor", getDCNamespace());
if (!contributors.isEmpty()) {
foundSomething = true;
dcm.setContributors(parseElementList(contributors));
}
final List<Element> dates = dcRoot.getChildren("date", getDCNamespace());
if (!dates.isEmpty()) {
foundSomething = true;
dcm.setDates(parseElementListDate(dates, locale));
}
final List<Element> types = dcRoot.getChildren("type", getDCNamespace());
if (!types.isEmpty()) {
foundSomething = true;
dcm.setTypes(parseElementList(types));
}
final List<Element> formats = dcRoot.getChildren("format", getDCNamespace());
if (!formats.isEmpty()) {
foundSomething = true;
dcm.setFormats(parseElementList(formats));
}
final List<Element> identifiers = dcRoot.getChildren("identifier", getDCNamespace());
if (!identifiers.isEmpty()) {
foundSomething = true;
dcm.setIdentifiers(parseElementList(identifiers));
}
final List<Element> sources = dcRoot.getChildren("source", getDCNamespace());
if (!sources.isEmpty()) {
foundSomething = true;
dcm.setSources(parseElementList(sources));
}
final List<Element> languages = dcRoot.getChildren("language", getDCNamespace());
if (!languages.isEmpty()) {
foundSomething = true;
dcm.setLanguages(parseElementList(languages));
}
final List<Element> relations = dcRoot.getChildren("relation", getDCNamespace());
if (!relations.isEmpty()) {
foundSomething = true;
dcm.setRelations(parseElementList(relations));
}
final List<Element> coverages = dcRoot.getChildren("coverage", getDCNamespace());
if (!coverages.isEmpty()) {
foundSomething = true;
dcm.setCoverages(parseElementList(coverages));
}
final List<Element> rights = dcRoot.getChildren("rights", getDCNamespace());
if (!rights.isEmpty()) {
foundSomething = true;
dcm.setRightsList(parseElementList(rights));
}
if (foundSomething) {
return dcm;
} else {