}
}
return groupDefinitions;
}
private GroupDefinition initGroupDef(Element groupElement) {
GroupDefinition groupDef = new GroupDefinition();
NodeList children = groupElement.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if (children.item(i) instanceof Element) {
Element element = (Element)children.item(i);
String tagName = element.getTagName();
element.normalize();
String text = null;
if (element.getFirstChild() instanceof Text) {
text = ((Text)element.getFirstChild()).getData().trim();
}
if (tagName.equals("group-key")) {
groupDef.setKey(text);
} else if (tagName.equals("group-name")) {
groupDef.setName(text);
} else if (tagName.equals("group-description")) {
groupDef.setDescription(text);
} else if (tagName.equals("selection-test")) {
NodeList testGroups = element.getChildNodes();
for (int j = 0; j < testGroups.getLength(); j++) {
Node testGroup = testGroups.item(j);
if (testGroup instanceof Element && ((Element)testGroup).getTagName().equals("test-group")) {
TestGroup tg = new TestGroup();
NodeList tests = testGroup.getChildNodes();
for (int k = 0; k < tests.getLength(); k++) {
Node test = tests.item(k);
if (test instanceof Element && ((Element)test).getTagName().equals("test")) {
String attribute = null;
String tester = null;
String value = null;
NodeList parameters = test.getChildNodes();
for (int l = 0; l < parameters.getLength(); l++) {
Node parameter = parameters.item(l);
text = null;
String nodeName = parameter.getNodeName();
if (parameter.getFirstChild() != null &&
parameter.getFirstChild() instanceof Text) {
text = ((Text)parameter.getFirstChild()).getData().trim();
}
if (nodeName.equals("attribute-name")) {
attribute = text;
} else if (nodeName.equals("tester-class")) {
tester = text;
} else if (nodeName.equals("test-value")) {
value = text;
}
}
IPersonTester testerInst = initializeTester(tester, attribute, value);
tg.addTest(testerInst);
}
groupDef.addTestGroup(tg);
}
}
}
} else if (tagName.equals("members")) {
addMemberKeys(groupDef, element);