1818import org .jetbrains .annotations .NotNull ;
1919import org .labkey .api .collections .CaseInsensitiveHashMap ;
2020import org .labkey .api .data .Container ;
21+ import org .labkey .api .data .ContainerManager ;
2122import org .labkey .api .ehr .demographics .AnimalRecord ;
2223import org .labkey .api .ehr .demographics .DemographicsProvider ;
2324import org .labkey .api .query .FieldKey ;
25+ import org .labkey .api .util .GUID ;
2426
2527import java .util .Collections ;
2628import java .util .Date ;
2931
3032/**
3133 * Immutable cached animal demographic record
32- *
33- * User: bimber
34- * Date: 7/14/13
3534 */
3635public class AnimalRecordImpl implements AnimalRecord
3736{
38- private Map <String , Object > _props = Collections .unmodifiableMap ( new CaseInsensitiveHashMap <>() );
39- private final Container _container ;
37+ private Map <String , Object > _props = Collections .emptyMap ( );
38+ private final GUID _containerId ;
4039 private final String _id ;
4140 private final Date _created ;
4241
43- private AnimalRecordImpl (Container c , String id )
42+ private AnimalRecordImpl (GUID containerId , String id )
4443 {
45- _container = c ;
44+ _containerId = containerId ;
4645 _id = id ;
4746 _created = new Date ();
4847 }
4948
50- private AnimalRecordImpl (Container c , String id , Map <String , Object > props )
49+ private AnimalRecordImpl (GUID containerId , String id , Map <String , Object > props )
5150 {
52- this (c , id );
51+ this (containerId , id );
5352 if (props != null )
5453 {
5554 _props = Collections .unmodifiableMap (new CaseInsensitiveHashMap <>(props ));
@@ -58,13 +57,13 @@ private AnimalRecordImpl(Container c, String id, Map<String, Object> props)
5857
5958 public static AnimalRecordImpl create (Container c , String id , Map <String , Object > props )
6059 {
61- return new AnimalRecordImpl (c , id , props );
60+ return new AnimalRecordImpl (c . getEntityId () , id , props );
6261 }
6362
6463 @ Override
6564 public AnimalRecord createCopy ()
6665 {
67- return new AnimalRecordImpl (getContainer () , getId (), _props );
66+ return new AnimalRecordImpl (_containerId , getId (), _props );
6867 }
6968
7069 public synchronized void update (DemographicsProvider p , Map <String , Object > props )
@@ -90,7 +89,7 @@ public String getId()
9089 @ Override
9190 public Container getContainer ()
9291 {
93- return _container ;
92+ return ContainerManager . getForId ( _containerId ) ;
9493 }
9594
9695 @ Override
0 commit comments