package org.eclipse.rap.rms.internal.data;
import java.util.Date;
import java.util.Iterator;
import org.eclipse.rap.rms.data.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
class ProjectWriter implements IEntityWriter {
private final IProject project;
private final StorageManager storageManager;
private final Element projects;
public ProjectWriter( final IProject project,
final StorageManager storageManager,
final Element projects )
{
this.project = project;
this.storageManager = storageManager;
this.projects = projects;
}
public void save() {
Document document = projects.getOwnerDocument();
Element newProject = document.createElement( EntityConstants.PROJECT );
projects.appendChild( newProject );
newProject.setAttribute( EntityConstants.ID, project.getId() );
newProject.setAttribute( EntityConstants.NAME, project.getName() );
newProject.setAttribute( EntityConstants.DESCRIPTION,
project.getDescription() );
Date sDate = project.getStartDate();
newProject.setAttribute( EntityConstants.STARTDATE,
String.valueOf( sDate.getTime() ));
Date eDate = project.getEndDate();
newProject.setAttribute( EntityConstants.ENDDATE,
String.valueOf( eDate.getTime() ));
Element assigments = document.createElement( EntityConstants.ASSIGMENTS );
newProject.appendChild( assigments );
Iterator<IAssignment> aIterator = this.project.getAssignments().iterator();
while( aIterator.hasNext() ) {
IAssignment assignment = aIterator.next();
IEntityWriter assignmentAdapter
= storageManager.getStorageAdapter( assignment, assigments );
assignmentAdapter.save();
}
Element tasks = document.createElement( EntityConstants.TASKS );
newProject.appendChild( tasks );
Iterator<ITask> tIterator = this.project.getTasks().iterator();
while( tIterator.hasNext() ) {
ITask task = tIterator.next();
IEntityWriter taskAdapter
= storageManager.getStorageAdapter( task, tasks );
taskAdapter.save();
}
}
}