private void createPortletDDList() {
final String METHOD_NAME = "createPortletDDList";
portletDDList = new ArrayList();
NodeList portlets = _doc.getElementsByTagName("portlet");
Element portlet = null;
PortletDD portletDD = null;
NodeList roleRefs = null;
ArrayList refList = null;
String name = null;
String className = null;
Element ref = null;
String refName = null;
String refLink = null;
if (portlets != null) {
for (int i = 0; i < portlets.getLength(); i++) {
portletDD = new PortletDD();
portlet = (Element)portlets.item(i);
//portlet-name is required
name = portlet.getElementsByTagName("portlet-name").item(0).getChildNodes().item(0).getNodeValue();
if (name == null) {
IllegalStateException e =
new IllegalStateException("The portlet-name element is required in portlet.xml");
PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
throw e;
}
portletDD.setPortletName(name);
//portlet-class is required
className = portlet.getElementsByTagName("portlet-class").item(0).getChildNodes().item(0).getNodeValue();
if (className == null) {
IllegalStateException e =
new IllegalStateException("The portlet-class element is required in portlet.xml");
PlutoAdminLogger.logError(CLASS_NAME, METHOD_NAME, e);
throw e;
}
portletDD.setPortletClass(className);
roleRefs = portlet.getElementsByTagName("security-role-ref");
refList = new ArrayList();
if (roleRefs != null && roleRefs.getLength() != 0) {
for (int j = 0; j < roleRefs.getLength(); j++) {
ref = (Element)roleRefs.item(j);
refName = ref.getElementsByTagName("role-name").item(0).getChildNodes().item(0).getNodeValue();
//role-link is optional
if (ref.getElementsByTagName("role-link").item(0) != null) {
refLink = ref.getElementsByTagName("role-link").item(0).getChildNodes().item(0).getNodeValue();
}
refList.add(new RoleRef(refName, refLink));
}
}
portletDD.setSecurityRoleRefs(refList);
portletDDList.add(portletDD);
}
} else {
IllegalStateException e =