Skip to content
Snippets Groups Projects
Commit 95070f11 authored by izabel's avatar izabel
Browse files

fix: contained sample should not be allowed as a container

SVN: 16543
parent 392b858c
No related branches found
No related tags found
No related merge requests found
...@@ -178,7 +178,8 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi ...@@ -178,7 +178,8 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
protected void setContainer(final SampleIdentifier sampleIdentifier, final SamplePE samplePE, protected void setContainer(final SampleIdentifier sampleIdentifier, final SamplePE samplePE,
String containerIdentifier) String containerIdentifier)
{ {
final SamplePE containerPE = tryGetValidSample(containerIdentifier, sampleIdentifier); final SamplePE containerPE =
tryGetValidNotContainedSample(containerIdentifier, sampleIdentifier);
samplePE.setContainer(containerPE); samplePE.setContainer(containerPE);
} }
...@@ -215,6 +216,19 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi ...@@ -215,6 +216,19 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi
return parentPE; return parentPE;
} }
private SamplePE tryGetValidNotContainedSample(final String parentIdentifierOrNull,
final SampleIdentifier sampleIdentifier)
{
SamplePE sample = tryGetValidSample(parentIdentifierOrNull, sampleIdentifier);
if (sample.getContainer() != null)
{
throw UserFailureException.fromTemplate(
"Cannot register sample '%s': parent '%s' is part of another sample.",
sampleIdentifier, parentIdentifierOrNull);
}
return sample;
}
final SampleTypePE getSampleType(final String code) throws UserFailureException final SampleTypePE getSampleType(final String code) throws UserFailureException
{ {
final SampleTypePE sampleType = getSampleTypeDAO().tryFindSampleTypeByCode(code); final SampleTypePE sampleType = getSampleTypeDAO().tryFindSampleTypeByCode(code);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment