org.squashtest.csp.tm.domain.requirement
Class RequirementVersion

java.lang.Object
  extended by org.squashtest.csp.tm.domain.resource.Resource
      extended by org.squashtest.csp.tm.domain.requirement.RequirementVersion
All Implemented Interfaces:
org.squashtest.csp.core.domain.Identified, AttachmentHolder, BoundEntity

@Entity
public class RequirementVersion
extends Resource
implements BoundEntity

Represents a version of a requirement.

Author:
Gregory Fouquet

Constructor Summary
RequirementVersion()
           
 
Method Summary
 void addVerifyingTestCase(TestCase testCase)
           
static RequirementVersion createFromMemento(RequirementVersionImportMemento memento)
          Factory methiod which creates a RequirementVersion from a memento objet which holds the new object's target state.
 RequirementVersion createPastableCopy()
          Will create a copy of the requirement version with all attributes, attachments and test-case associations.
 Long getBoundEntityId()
           
 BindableEntity getBoundEntityType()
           
 RequirementCategory getCategory()
           
 RequirementCriticality getCriticality()
           
 Project getProject()
           
 String getReference()
           
 Requirement getRequirement()
           
 RequirementStatus getStatus()
           
 Set<TestCase> getVerifyingTestCases()
          Returns an UNMODIFIABLE VIEW of the verifying test cases.
 int getVersionNumber()
           
 boolean isLinkable()
           
 boolean isModifiable()
          Tells if this requirement's "intrinsic" properties can be modified.
 boolean isNotObsolete()
           
 void notifyNoLongerVerifiedBy(TestCase testCase)
           
 void notifyVerifiedBy(TestCase testCase)
           
 void removeVerifyingTestCase(TestCase testCase)
           
 void setCategory(RequirementCategory category)
          Set the requirement category
 void setCriticality(RequirementCriticality criticality)
          Set the requirement criticality
 void setDescription(String description)
           
 void setName(String name)
           
 void setReference(String reference)
          Set the requirement reference
 void setStatus(RequirementStatus status)
          Sets this object's status, following status transition rules.
protected  void setVersionNumber(int versionNumber)
           
 
Methods inherited from class org.squashtest.csp.tm.domain.resource.Resource
equals, getAttachmentList, getDescription, getId, getName, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequirementVersion

public RequirementVersion()
Method Detail

setName

public void setName(String name)
Overrides:
setName in class Resource

setDescription

public void setDescription(String description)
Overrides:
setDescription in class Resource

getVerifyingTestCases

public Set<TestCase> getVerifyingTestCases()
Returns an UNMODIFIABLE VIEW of the verifying test cases.


addVerifyingTestCase

public void addVerifyingTestCase(@NotNull
                                 TestCase testCase)
                          throws RequirementVersionNotLinkableException,
                                 RequirementAlreadyVerifiedException
Parameters:
testCase -
Throws:
RequirementVersionNotLinkableException
RequirementAlreadyVerifiedException - if another version of the same requirement is already verified by this test case.

removeVerifyingTestCase

public void removeVerifyingTestCase(@NotNull
                                    TestCase testCase)
                             throws RequirementVersionNotLinkableException
Throws:
RequirementVersionNotLinkableException

getReference

public String getReference()
Returns:
the reference of the requirement

setReference

public void setReference(String reference)
Set the requirement reference

Parameters:
reference -

getCriticality

public RequirementCriticality getCriticality()
Returns:
the requirement criticality

setCriticality

public void setCriticality(RequirementCriticality criticality)
Set the requirement criticality

Parameters:
criticality -

getCategory

public RequirementCategory getCategory()
Returns:
the requirement category

setCategory

public void setCategory(RequirementCategory category)
Set the requirement category

Parameters:
category -

setStatus

public void setStatus(RequirementStatus status)
Sets this object's status, following status transition rules.

Parameters:
status -

getStatus

public RequirementStatus getStatus()

isLinkable

public boolean isLinkable()
Returns:
true if this requirement can be (un)linked by new verifying testcases

isModifiable

public boolean isModifiable()
Tells if this requirement's "intrinsic" properties can be modified. The following are not considered as "intrinsic" properties" : verifyingTestCases are governed by the isLinkable() state, status is governed by itself.

Returns:
true if this requirement's properties can be modified.

notifyVerifiedBy

public void notifyVerifiedBy(@NotNull
                             TestCase testCase)

notifyNoLongerVerifiedBy

public void notifyNoLongerVerifiedBy(@NotNull
                                     TestCase testCase)

getRequirement

public Requirement getRequirement()
Returns:
the requirement

getVersionNumber

public int getVersionNumber()
Returns:
the versionNumber

setVersionNumber

protected void setVersionNumber(int versionNumber)

createPastableCopy

public RequirementVersion createPastableCopy()
Will create a copy of the requirement version with all attributes, attachments and test-case associations.

Returns:
the requirement-version copy.

isNotObsolete

public boolean isNotObsolete()

createFromMemento

public static RequirementVersion createFromMemento(@NotNull
                                                   RequirementVersionImportMemento memento)
Factory methiod which creates a RequirementVersion from a memento objet which holds the new object's target state. This method overrides any RequirementStatus workflow check.

Parameters:
memento -
Returns:

getBoundEntityId

public Long getBoundEntityId()
Specified by:
getBoundEntityId in interface BoundEntity

getBoundEntityType

public BindableEntity getBoundEntityType()
Specified by:
getBoundEntityType in interface BoundEntity

getProject

public Project getProject()
Specified by:
getProject in interface BoundEntity


Copyright © 2010-2012 Henix, henix.fr. All Rights Reserved.