public void removeParameter(int id, Session session) { Parameter parameter = findParameter(id, true); // if parameter == null, it maybe response parameter if (parameter == null) { parameter = findParameter(id, false); // if parameter == null still, it must be child parameter of a complex parameter if (parameter == null) { parameter = findChildParameter(id); if (parameter != null && parameter.getComplexParameterList() != null) { for (Parameter pComplex : parameter.getComplexParameterList()) { pComplex.getParameterList().remove(parameter); session.delete(parameter); } } return; } Iterator<Action> iterator = parameter.getActionResponseList().iterator(); while (iterator.hasNext()) { iterator.next().getResponseParameterList().remove(parameter); session.delete(parameter); } } else { Iterator<Action> iterator = parameter.getActionRequestList().iterator(); while (iterator.hasNext()) { iterator.next().getRequestParameterList().remove(parameter); session.delete(parameter); } } }
private void getParameterListHTMLSub(StringBuilder html, Set<Parameter> list, short level) { for (Parameter p : list) { html.append("<tr class=\"tr-level-" + level + "\">") .append( "<td class=\"td-name\">" + levelMark(level) + StringUtils.escapeInH(p.getName()) + "</td>") .append( "<td class=\"td-identifier\">" + StringUtils.escapeInH(p.getIdentifier()) + "</td>") .append("<td class=\"td-type\">" + StringUtils.escapeInH(p.getDataType()) + "</td>") .append("<td class=\"td-remark\">" + StringUtils.escapeInH(p.getRemark()) + "</td>") .append("</tr>"); if (p.getParameterList() != null || p.getParameterList().size() > 0) { getParameterListHTMLSub(html, p.getParameterList(), (short) (level + 1)); } } }
/** * find parameter recursively recursive: p.parameterList[0].parameterList[0]..... * * @param p * @param id * @return return the object found, other wise return null */ private Parameter findParameterRecursively(Parameter p, int id) { Iterator<Parameter> iterator = p.getParameterList().iterator(); while (iterator.hasNext()) { Parameter parameter = iterator.next(); if (parameter.getId() == id) { return parameter; } parameter = findParameterRecursively(parameter, id); if (parameter != null) { return parameter; } } return null; }