public class ProjectDetailsAssembler 
implements javax.ejb.SessionBean {

  ...

  public ProjectDetailsData getData(String projectId){ 

    // tworzenie zoonego obiektu transferowego
    ProjectDetailsData pData = new 
      ProjectDetailsData();

    // pobranie szczegw projektu 
    ProjectHome projectHome = 
      ServiceLocator.getInstance().getLocalHome(
        "Project", ProjectEntityHome.class);
    ProjectEntity project = 
      projectHome.findByPrimaryKey(projectId);
    ProjectTO projTO = project.getData();
  
    // dodanie informacji o projekcie do ProjectDetailsData
    pData.projectData = projTO;

    //get the project manager details;
    ProjectManagerHome projectManagerHome = 
      ServiceLocator.getInstance().getLocalHome( 
        "ProjectManager", ProjectEntityHome.class);
  
    ProjectManagerEntity projectManager = 
      projectManagerHome.findByPrimaryKey(
        projTO.managerId);

    ProjectManagerTO projMgrTO = projectManager.getData();
  
    // dodanie ProjectManager do ProjectDetailsData
    pData.projectManagerData = projMgrTO;

    // pobranie listy obiektw TaskTO z Project
    Collection projTaskList = project.getTasksList();

    // utworzenie listy obiektw TaskResourceTOs
    ArrayList listOfTasks = new ArrayList();
  
    Iterator taskIter = projTaskList.iterator();
    while (taskIter.hasNext()) {
      TaskTO task = (TaskTO) taskIter.next();

      // pobranie szczegw Resource zasobu 
      ResourceHome resourceHome = 
          ServiceLocator.getInstance().getLocalHome( 
          "Resource", ResourceEntityHome.class);
  
      ResourceEntity resource =
          resourceHome.findByPrimaryKey(
          task.assignedResourceId);

      ResourceTO resTO = resource.getResourceData();

      // utworzenie nowego TaskResourceTO przy uyciu danych
      // zada i zasobw
      TaskResourceTO trTO =
          new TaskResourceTO( task.projectId, task.taskId,
          task.name, task.description, task.startDate,
          task.endDate, resTO);

      // dodanie TaskResourceTO do listy
      listOfTasks.add(trTO);
    }

    // dodanie listy zada do ProjectDetailsData
    pData.listOfTasks = listOfTasks;

    // dodanie pozostaych danych do obiektu transferowego
    ...
  
    // zwrcenie zoonego obiektu transferowego
    return pData;

  }
  ...
}	