package org.eclipse.rap.rms.internal.data;
import java.util.Iterator;
import org.eclipse.rap.rms.data.IPrincipal;
import org.eclipse.rap.rms.data.IProject;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
class PrincipalWriter implements IEntityWriter {
private final IPrincipal principal;
private final StorageManager storageManager;
private final Element principals;
PrincipalWriter( final IPrincipal principal,
final StorageManager storageManager,
final Element principals )
{
this.principal = principal;
this.storageManager = storageManager;
this.principals = principals;
}
public void save() {
Document document = principals.getOwnerDocument();
Element newPrincipal = document.createElement( EntityConstants.PRINCIPAL );
principals.appendChild( newPrincipal );
newPrincipal.setAttribute( EntityConstants.ID, principal.getId() );
newPrincipal.setAttribute( EntityConstants.NAME, principal.getName() );
newPrincipal.setAttribute( EntityConstants.STREET, principal.getStreet() );
newPrincipal.setAttribute( EntityConstants.CITY, principal.getCity() );
newPrincipal.setAttribute( EntityConstants.POSTCODE,
principal.getPostCode() );
newPrincipal.setAttribute( EntityConstants.COUNTRY,
principal.getCountry() );
newPrincipal.setAttribute( EntityConstants.LAST_NAME,
principal.getLastName() );
newPrincipal.setAttribute( EntityConstants.FIRST_NAME,
principal.getFirstName() );
newPrincipal.setAttribute( EntityConstants.EMAIL,
principal.getEMail() );
newPrincipal.setAttribute( EntityConstants.PHONENUMBER,
principal.getPhoneNumber() );
newPrincipal.setAttribute( EntityConstants.FAXNUMBER,
principal.getFaxNumber() );
newPrincipal.setAttribute( EntityConstants.MOBILENUMBER,
principal.getMobileNumber() );
Element projects = document.createElement( EntityConstants.PROJECTS );
newPrincipal.appendChild( projects );
Iterator<IProject> pIterator = principal.getProjects().iterator();
while( pIterator.hasNext()) {
IProject project = pIterator.next();
IEntityWriter projectAdapter
= storageManager.getStorageAdapter( project, projects);
projectAdapter.save();
}
}
}