com.agiletec.aps.system.common.entity.parse.AttributeRoleDOM Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of entando-engine Show documentation
Show all versions of entando-engine Show documentation
Entando Engine: an agile, modern and user-centric open source Portal platform.
/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.agiletec.aps.system.common.entity.parse;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jdom.Document;
import org.jdom.Element;
import com.agiletec.aps.system.common.entity.model.attribute.AttributeRole;
import com.agiletec.aps.system.exception.ApsSystemException;
/**
* Dom class parser of Attribute Role definitions.
* @author E.Santoboni
*/
public class AttributeRoleDOM extends AbstractAttributeSupportObjectDOM {
public Map extractRoles(String xml, String definitionPath) throws ApsSystemException {
this.validate(xml, definitionPath);
Document document = this.decodeDOM(xml);
return this.extractRoles(document);
}
@Override
protected String getSchemaFileName() {
return "attributeRoles-4.0.xsd";
}
private Map extractRoles(Document document) {
Map roles = new HashMap<>();
List roleElements = document.getRootElement().getChildren("role");
for (int i=0; i allowedTypes = Arrays.asList(array);
AttributeRole role = new AttributeRole(name, description, allowedTypes);
String formFieldTypeText = roleElement.getChildText("formFieldType");
if (null != formFieldTypeText) {
role.setFormFieldType(Enum.valueOf(AttributeRole.FormFieldTypes.class, formFieldTypeText.toUpperCase()));
}
roles.put(name, role);
}
return roles;
}
}