defaultFile.toFile().delete();
}
return;
}
XMLMemento memento = XMLMemento.createWriteRoot(AOP_REFERENCE_MODEL_ELEMENT);
Collection<IAopProject> projects = Activator.getModel().getProjects();
for (IAopProject project : projects) {
IMemento projectM = appendNewChild(memento, AOP_PROJECT_ELEMENT);
projectM.putString(NAME_ATTRIBUTE, project.getProject().getElementName());
Set<IAopReference> refs = project.getAllReferences();
Map<IAspectDefinition, List<IAopReference>> maps = new HashMap<IAspectDefinition, List<IAopReference>>();
for (IAopReference ref : refs) {
if (maps.containsKey(ref.getDefinition())) {
maps.get(ref.getDefinition()).add(ref);
}
else {
List<IAopReference> r = new ArrayList<IAopReference>();
r.add(ref);
maps.put(ref.getDefinition(), r);
}
}
for (Map.Entry<IAspectDefinition, List<IAopReference>> entry : maps.entrySet()) {
IMemento definitionM = appendNewChild(projectM, ASPECT_DEFINITION_ELEMENT);
if (entry.getKey() instanceof IAdaptable) {
IPersistableElement pers = (IPersistableElement) ((IAdaptable) entry.getKey())
.getAdapter(IPersistableElement.class);
if (pers != null) {
pers.saveState(definitionM);
definitionM.putString(FACTORY_ID, pers.getFactoryId());
}
for (IAopReference ref : entry.getValue()) {
if (ref instanceof IAdaptable) {
IPersistableElement pers2 = (IPersistableElement) ((IAdaptable) ref)
.getAdapter(IPersistableElement.class);
if (pers2 != null) {
IMemento refM = appendNewChild(definitionM, AOP_REFERENCE_ELEMENT);
pers2.saveState(refM);
refM.putString(FACTORY_ID, pers2.getFactoryId());
}
}
}
}
}
}
// save memento to default map file
Writer writer = null;
try {
writer = new FileWriter(defaultFile.toFile());
memento.save(writer);
}
catch (IOException e) {
}
finally {
if (writer != null) {