}
public static class ProfileStateSplitter implements StateSplitter {
public List<Pair<Element, String>> splitState(final Element e) {
final UniqueNameGenerator generator = new UniqueNameGenerator();
List<Pair<Element, String>> result = new ArrayList<Pair<Element, String>>();
final Element[] elements = JDOMUtil.getElements(e);
for (Element element : elements) {
if (element.getName().equals("profiles")) {
element.detach();
final Element[] profiles = JDOMUtil.getElements(element);
for (Element profile : profiles) {
String profileName = null;
final Element[] options = JDOMUtil.getElements(profile);
for (Element option : options) {
if (option.getName().equals("option") && option.getAttributeValue("name").equals("myName")) {
profileName = option.getAttributeValue("value");
}
}
assert profileName != null;
final String name = generator.generateUniqueName(FileUtil.sanitizeFileName(profileName)) + ".xml";
result.add(new Pair<Element, String>(profile, name));
}
}
}
result.add(new Pair<Element, String>(e, generator.generateUniqueName("profiles_settings") + ".xml"));
return result;
}