private function doCreate()
 {
     $projectCreator = new ProjectCreator($this->project_manager, ReferenceManager::instance());
     $data = $this->creation_request->getProjectValues();
     $creationData = ProjectCreationData::buildFromFormArray($data);
     return $projectCreator->build($creationData);
 }
 private function createProject(SimpleXMLElement $xml, Tuleap\Project\SystemEventRunner $event_runner)
 {
     $event_runner->checkPermissions();
     $this->logger->info("Create project {$xml['unix-name']}");
     $data = ProjectCreationData::buildFromXML($xml, 100, $this->xml_validator, ServiceManager::instance(), $this->project_manager);
     $project = $this->project_creator->build($data);
     $this->logger->info("Execute system events to finish creation of project {$project->getID()}, this can take a while...");
     $event_runner->runSystemEvents();
     $this->logger->info("System events success");
     return $project;
 }
 public static function buildFromXML(SimpleXMLElement $xml, $template_id = 100, XML_RNGValidator $xml_validator = null, ServiceManager $service_manager = null, ProjectManager $project_manager = null)
 {
     $instance = new ProjectCreationData();
     $instance->fromXML($xml, $template_id, $xml_validator, $service_manager, $project_manager);
     return $instance;
 }
 /**
  * Create a new project
  *
  * $data['project']['form_unix_name']
  * $data['project']['form_full_name']
  * $data['project']['form_short_description']
  * $data['project']['built_from_template']
  * $data['project']['is_test']
  * $data['project']['is_public']
  * $data['project']["form_".$descfieldsinfos[$i]["group_desc_id"]]
  * foreach($data['project']['trove'] as $root => $values);
  * $data['project']['services'][$arr['service_id']]['is_used'];
  * $data['project']['services'][$arr['service_id']]['server_id'];
  *
  * @param String $shortName, the unix name
  * @param String $publicName, the full name
  * @param Array $data
  *
  * @return Project
  */
 public function create($shortName, $publicName, array $data)
 {
     $creationData = ProjectCreationData::buildFromFormArray($data);
     $creationData->setUnixName($shortName);
     $creationData->setFullName($publicName);
     return $this->build($creationData);
 }
 /**
  * $data['project']['form_unix_name']
  * $data['project']['form_full_name']
  * $data['project']['form_license']
  * $data['project']['form_license_other']
  * $data['project']['form_short_description']
  * $data['project']['built_from_template']
  * $data['project']['is_test']
  * $data['project']['is_public']
  * $data['project']["form_".$descfieldsinfos[$i]["group_desc_id"]]
  * foreach($data['project']['trove'] as $root => $values);
  * $data['project']['services'][$arr['service_id']]['is_used'];
  * $data['project']['services'][$arr['service_id']]['server_id'];
  */
 public function buildFromFormArray(array $data)
 {
     $instance = new ProjectCreationData();
     $instance->fromForm($data);
     return $instance;
 }
 private function createProject(SimpleXMLElement $xml)
 {
     $data = ProjectCreationData::buildFromXML($xml, 100, $this->xml_validator, ServiceManager::instance(), $project_manager = $this->project_manager);
     return $this->project_creator->build($data);
 }