code: public Reference createReference(Reference reference) throws GreenPepperServerException
      {
          String projectName = reference.getSystemUnderTest().getProject().getName();
          String reqRepoUid = reference.getRequirement().getRepository().getUid();
          String requirementName = reference.getRequirement().getName();
          String testName = reference.getSpecification().getName();
          String testRepoUid = reference.getSpecification().getRepository().getUid();
          String sutName = reference.getSystemUnderTest().getName();
          String sections = reference.getSections();
  
          Requirement requirement = getOrCreateRequirement(reqRepoUid, requirementName);
  
  		checkDuplicatedReference(requirement, testName, testRepoUid, sutName, sections);
  
          Specification specification = getOrCreateSpecification(sutName, testRepoUid, testName);
          SystemUnderTest sut = systemUnderTestDao.getByName(projectName, sutName);
              
          reference = Reference.newInstance(requirement, specification, sut, sections);
          sessionService.getSession().save(reference);
  
          return reference;
      }
docs: {@inheritDoc}