/**
  * Creates a new source.
  *
  * @param 	string		$name			The name of the source
  * @param	string		$sourceDirectory	Source directory used for files
  * @param	string		$buildDirectory		Build directory contains all archives
  * @param	string		$scm			Defines used SCM, may be 'git', 'none' and 'subversion'
  * @param	string		$url			URL for accessing subversion
  * @param	string		$username		Username neccessary if subversion repository is protected
  * @param	string		$password		Password neccessary if subversion repository is protected
  * @param	boolean		$trustServerCert	Automaticly trust server certificate
  * @param	boolean		$enableCheckout		Enables checkout ability
  * @param	integer		$position		Position used to order sources
  * @return 	SourceEditor
  */
 public static function create($name, $sourceDirectory, $buildDirectory, $scm, $url, $username, $password, $trustServerCert, $enableCheckout, $position)
 {
     // handle dir seperators
     $sourceDirectory = FileUtil::unifyDirSeperator($sourceDirectory);
     $buildDirectory = FileUtil::unifyDirSeperator($buildDirectory);
     // validate SCM
     $scm = self::validateSCM($scm);
     // save data
     $sourceID = self::insert($name, array('sourceDirectory' => $sourceDirectory, 'buildDirectory' => $buildDirectory, 'scm' => $scm, 'url' => $url, 'username' => $username, 'password' => $password, 'trustServerCert' => $trustServerCert, 'enableCheckout' => $enableCheckout));
     // get source
     $source = new SourceEditor($sourceID, null);
     // set position
     $source->setPosition($position);
     // create permissions
     $source->createPermissions();
     return $source;
 }