/*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
* This file is part of jAPS software.
* jAPS is a free software;
* you can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions
* and limitations under the License
*
*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
*/
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<String, AttributeRole> 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-2.2.xsd";
}
private Map<String, AttributeRole> extractRoles(Document document) {
Map<String, AttributeRole> roles = new HashMap<String, AttributeRole>();
List<Element> roleElements = document.getRootElement().getChildren("role");
for (int i=0; i<roleElements.size(); i++) {
Element roleElement = roleElements.get(i);
String name = roleElement.getChildText("name");
String description = roleElement.getChildText("description");
String allowedTypesCSV = roleElement.getChildText("allowedTypes");
String[] array = allowedTypesCSV.split(",");
List<String> allowedTypes = Arrays.asList(array);
AttributeRole role = new AttributeRole(name, description, allowedTypes);
roles.put(name, role);
}
return roles;
}
}