caruby-tissue 1.3.4 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +11 -7
- data/lib/catissue/annotation/annotatable_class.rb +18 -1
- data/lib/catissue/annotation/annotation.rb +5 -0
- data/lib/catissue/annotation/annotation_class.rb +15 -3
- data/lib/catissue/annotation/proxy_class.rb +2 -1
- data/lib/catissue/database/annotation/annotation_service.rb +13 -6
- data/lib/catissue/database/annotation/annotator.rb +3 -1
- data/lib/catissue/database/annotation/entity_facade.rb +21 -29
- data/lib/catissue/database/annotation/integration_service.rb +6 -4
- data/lib/catissue/database.rb +2 -2
- data/lib/catissue/domain/abstract_domain_object.rb +1 -1
- data/lib/catissue/domain/abstract_position.rb +1 -1
- data/lib/catissue/domain/abstract_specimen.rb +1 -1
- data/lib/catissue/domain/abstract_specimen_collection_group.rb +1 -1
- data/lib/catissue/domain/address.rb +1 -1
- data/lib/catissue/domain/cancer_research_group.rb +1 -1
- data/lib/catissue/domain/capacity.rb +1 -1
- data/lib/catissue/domain/check_in_check_out_event_parameter.rb +1 -1
- data/lib/catissue/domain/collection_event_parameters.rb +1 -1
- data/lib/catissue/domain/collection_protocol.rb +1 -1
- data/lib/catissue/domain/collection_protocol_event.rb +1 -1
- data/lib/catissue/domain/collection_protocol_registration.rb +1 -1
- data/lib/catissue/domain/consent_tier_response.rb +1 -1
- data/lib/catissue/domain/consent_tier_status.rb +1 -1
- data/lib/catissue/domain/container.rb +1 -1
- data/lib/catissue/domain/container_position.rb +4 -2
- data/lib/catissue/domain/container_type.rb +1 -1
- data/lib/catissue/domain/department.rb +1 -1
- data/lib/catissue/domain/disposal_event_parameters.rb +1 -1
- data/lib/catissue/domain/embedded_event_parameters.rb +1 -1
- data/lib/catissue/domain/external_identifier.rb +1 -1
- data/lib/catissue/domain/frozen_event_parameters.rb +1 -1
- data/lib/catissue/domain/institution.rb +1 -1
- data/lib/catissue/domain/new_specimen_array_order_item.rb +1 -1
- data/lib/catissue/domain/order_details.rb +1 -1
- data/lib/catissue/domain/participant.rb +2 -2
- data/lib/catissue/domain/participant_medical_identifier.rb +1 -1
- data/lib/catissue/domain/password.rb +1 -1
- data/lib/catissue/domain/race.rb +1 -1
- data/lib/catissue/domain/received_event_parameters.rb +1 -1
- data/lib/catissue/domain/site.rb +1 -1
- data/lib/catissue/domain/specimen.rb +49 -40
- data/lib/catissue/domain/specimen_array.rb +1 -1
- data/lib/catissue/domain/specimen_array_content.rb +1 -1
- data/lib/catissue/domain/specimen_array_type.rb +1 -1
- data/lib/catissue/domain/specimen_characteristics.rb +1 -1
- data/lib/catissue/domain/specimen_collection_group.rb +7 -7
- data/lib/catissue/domain/specimen_event_parameters.rb +6 -6
- data/lib/catissue/domain/specimen_position.rb +1 -1
- data/lib/catissue/domain/specimen_protocol.rb +1 -1
- data/lib/catissue/domain/specimen_requirement.rb +13 -13
- data/lib/catissue/domain/storage_container.rb +1 -1
- data/lib/catissue/domain/storage_type.rb +1 -1
- data/lib/catissue/domain/transfer_event_parameters.rb +1 -1
- data/lib/catissue/domain/user.rb +1 -1
- data/lib/catissue/migration/migrator.rb +2 -2
- data/lib/catissue/version.rb +1 -1
- data/test/lib/catissue/domain/specimen_test.rb +241 -242
- data/test/lib/catissue/test_case.rb +11 -7
- metadata +3 -4
- data/examples/galena/lib/galena/cli/seed.rb +0 -22
data/History.txt
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
=== 1.2.1 / 2010-11-23
|
|
2
2
|
|
|
3
|
-
* Initial public release
|
|
3
|
+
* Initial public release.
|
|
4
4
|
|
|
5
5
|
=== 1.2.2 / 2010-11-30
|
|
6
6
|
|
|
7
|
-
* Enable Galena example
|
|
7
|
+
* Enable Galena example.
|
|
8
8
|
|
|
9
9
|
=== 1.2.3 / 2011-02-18
|
|
10
10
|
|
|
11
|
-
* Support Dynamic Extensions
|
|
11
|
+
* Support Dynamic Extensions.
|
|
12
12
|
|
|
13
13
|
=== 1.3.1 / 2011-02-18
|
|
14
14
|
|
|
15
|
-
* Full PCBIN DE support
|
|
15
|
+
* Full PCBIN DE support.
|
|
16
16
|
|
|
17
17
|
=== 1.3.2 / 2011-02-25
|
|
18
18
|
|
|
19
|
-
* Minor migration bug fixes
|
|
19
|
+
* Minor migration bug fixes.
|
|
20
20
|
|
|
21
21
|
=== 1.3.3 / 2011-02-26
|
|
22
22
|
|
|
23
|
-
* JRuby 1.5 upgrade
|
|
23
|
+
* JRuby 1.5 upgrade.
|
|
24
24
|
|
|
25
25
|
=== 1.3.4 / 2011-02-26
|
|
26
26
|
|
|
27
|
-
* Use caruby-core JRuby 1.5 bug work-around
|
|
27
|
+
* Use caruby-core JRuby 1.5 bug work-around.
|
|
28
|
+
|
|
29
|
+
=== 1.3.5 / 2011-03-04
|
|
30
|
+
|
|
31
|
+
* Support annotation migration.
|
|
28
32
|
|
|
@@ -13,7 +13,11 @@ module CaTissue
|
|
|
13
13
|
def self.extended(klass)
|
|
14
14
|
super
|
|
15
15
|
# the annotation name => spec hash
|
|
16
|
-
klass.class_eval
|
|
16
|
+
klass.class_eval do
|
|
17
|
+
extend Forwardable
|
|
18
|
+
@ann_spec_hash = {}
|
|
19
|
+
@local_ann_attrs = []
|
|
20
|
+
end
|
|
17
21
|
end
|
|
18
22
|
|
|
19
23
|
# @return [Integer, nil] this class's entity id, if it exists, otherwise the superclass effective entity id
|
|
@@ -79,6 +83,16 @@ module CaTissue
|
|
|
79
83
|
end
|
|
80
84
|
end
|
|
81
85
|
|
|
86
|
+
def printable_attributes
|
|
87
|
+
@prbl_attrs ||= super.union(annotation_attributes)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def annotation_attributes
|
|
91
|
+
@ann_attrs ||= append_ancestor_enum(@local_ann_attrs) do |sc|
|
|
92
|
+
sc.annotation_attributes if sc < Annotatable
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
82
96
|
protected
|
|
83
97
|
|
|
84
98
|
# @return [<AnnotationModule>] the annotation modules in the class hierarchy
|
|
@@ -250,6 +264,9 @@ module CaTissue
|
|
|
250
264
|
|
|
251
265
|
# the annotation is a dependent
|
|
252
266
|
add_dependent_attribute(attribute, :logical)
|
|
267
|
+
|
|
268
|
+
# add the attribute to the local collection
|
|
269
|
+
@local_ann_attrs << attribute
|
|
253
270
|
end
|
|
254
271
|
end
|
|
255
272
|
end
|
|
@@ -31,6 +31,11 @@ module CaTissue
|
|
|
31
31
|
|
|
32
32
|
# If there is no conventional owner, then try the hook.
|
|
33
33
|
#
|
|
34
|
+
# caTissue alert - DE annotations have a physical dependency ownership model that is at odds
|
|
35
|
+
# with the logical model. An annotation does not directly reference its static hook owner
|
|
36
|
+
# instance. Rather, it references the hook proxy which stands in for the hook entity in the
|
|
37
|
+
# annotation package.
|
|
38
|
+
#
|
|
34
39
|
# @return the {CaRuby::Resource#owner} or the {#hook}
|
|
35
40
|
def owner
|
|
36
41
|
super or hook
|
|
@@ -49,6 +49,16 @@ module CaTissue
|
|
|
49
49
|
dependent_attributes.each { |attr| save_dependent_attribute(annotation, attr) }
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
+
# @return [Boolean] whether this annotation refers to a {#primary?} annotation
|
|
53
|
+
def secondary?
|
|
54
|
+
not @proxy_attribute.nil?
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# @return [Boolean] whether this annotation is neither a {#primary?} nor a #{secondary} annotation
|
|
58
|
+
def tertiary_annotation
|
|
59
|
+
not (primary? or secondary?)
|
|
60
|
+
end
|
|
61
|
+
|
|
52
62
|
# Detects or creates the proxy attribute that references the given proxy class.
|
|
53
63
|
# if this is a primary_entity annotation class which does not
|
|
54
64
|
# have a caTissue proxy property.
|
|
@@ -62,7 +72,9 @@ module CaTissue
|
|
|
62
72
|
# set the hook
|
|
63
73
|
self.hook = proxy.hook
|
|
64
74
|
# primary superclass gets a proxy as well
|
|
65
|
-
if superclass < Annotation
|
|
75
|
+
if superclass < Annotation then
|
|
76
|
+
superclass.ensure_primary_has_proxy(proxy)
|
|
77
|
+
end
|
|
66
78
|
end
|
|
67
79
|
|
|
68
80
|
# @param [Class] klass the hook class for this primary annotation
|
|
@@ -184,7 +196,7 @@ module CaTissue
|
|
|
184
196
|
|
|
185
197
|
def obtain_proxy_attribute(proxy)
|
|
186
198
|
# parent proxy is reserved for RadiationTherapy use case described in ParticipantTest.
|
|
187
|
-
# TODO - either support this use case
|
|
199
|
+
# TODO - either support this use case or delete the parent proxy call
|
|
188
200
|
detect_proxy_attribute(proxy) or create_proxy_attribute(proxy) or parent_proxy_attribute
|
|
189
201
|
end
|
|
190
202
|
|
|
@@ -213,7 +225,7 @@ module CaTissue
|
|
|
213
225
|
def create_proxy_attribute(proxy)
|
|
214
226
|
# the proxy attribute symbol
|
|
215
227
|
attr = proxy.name.demodulize.underscore.to_sym
|
|
216
|
-
logger.debug { "Creating primary annotation #{qp} proxy attribute #{attr}..." }
|
|
228
|
+
logger.debug { "Creating primary annotation #{qp} proxy #{proxy} attribute #{attr}..." }
|
|
217
229
|
# make the attribute
|
|
218
230
|
attr_accessor(attr)
|
|
219
231
|
# Add the attribute. Setting the saved flag ensures that the save template passed to
|
|
@@ -37,10 +37,11 @@ module CaTissue
|
|
|
37
37
|
|
|
38
38
|
# Adds each proxy => annotation reference as a dependent attribute.
|
|
39
39
|
def add_annotation_dependents
|
|
40
|
+
# first add the direct dependents
|
|
40
41
|
annotation_attributes.each_metadata do |attr_md|
|
|
41
42
|
attr_md.type.add_dependent_attributes
|
|
42
|
-
attr_md.type.proxy = self
|
|
43
43
|
end
|
|
44
|
+
# now add the recursive indirect dependents
|
|
44
45
|
annotation_attributes.each_metadata do |attr_md|
|
|
45
46
|
attr_md.type.add_dependent_attribute_closure
|
|
46
47
|
end
|
|
@@ -37,21 +37,28 @@ module CaTissue
|
|
|
37
37
|
# @return [Annotation] the annotation
|
|
38
38
|
def create(annotation)
|
|
39
39
|
logger.debug { "Creating annotation #{annotation.qp}..." }
|
|
40
|
-
|
|
40
|
+
time { create_annotation(annotation) }
|
|
41
|
+
logger.debug { "Created annotation #{annotation}." }
|
|
42
|
+
annotation
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
# @param [Annotation] (see #create)
|
|
48
|
+
def create_annotation(annotation)
|
|
49
|
+
# get the hook
|
|
41
50
|
hook = annotation.hook
|
|
42
51
|
# If no hook, then this is not a primary annotation. In that case, find a referenced
|
|
43
52
|
# primary annotation.
|
|
53
|
+
# If no hook, then this is not a primary annotation. In that case, find a referenced
|
|
54
|
+
# primary annotation.
|
|
44
55
|
if hook then
|
|
45
|
-
|
|
56
|
+
create_primary_annotation(annotation, hook)
|
|
46
57
|
else
|
|
47
58
|
create_secondary_annotation(annotation)
|
|
48
59
|
end
|
|
49
|
-
logger.debug { "Created annotation #{annotation}." }
|
|
50
|
-
annotation
|
|
51
60
|
end
|
|
52
61
|
|
|
53
|
-
private
|
|
54
|
-
|
|
55
62
|
# @param annotation (see #create)
|
|
56
63
|
# @param [Annotable] the annotatable object referenced by this annotation
|
|
57
64
|
def create_primary_annotation(annotation, hook)
|
|
@@ -19,7 +19,9 @@ module CaTissue
|
|
|
19
19
|
# @param [String] name the service name
|
|
20
20
|
# @return [Annotation::AnnotationService] the annotation service
|
|
21
21
|
def create_annotation_service(name)
|
|
22
|
-
|
|
22
|
+
host = CaTissue.access_properties[:host]
|
|
23
|
+
port = CaTissue.access_properties[:port]
|
|
24
|
+
Annotation::AnnotationService.new(@database, name, :host => host, :port => port, :integration_service => @integration_service)
|
|
23
25
|
end
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -5,25 +5,16 @@ require 'catissue/database/annotation/id_generator'
|
|
|
5
5
|
|
|
6
6
|
module CaTissue
|
|
7
7
|
module Annotation
|
|
8
|
-
#
|
|
9
|
-
java_import('edu.wustl.common.security.exceptions.UserNotAuthorizedException')
|
|
10
|
-
|
|
11
|
-
# Import the caTissue Java EntityManager.
|
|
12
|
-
java_import('edu.common.dynamicextensions.entitymanager.EntityManager')
|
|
13
|
-
|
|
14
|
-
# EntityFacade is the caRuby interface to the caTissue EntityManager. EntityManager is
|
|
8
|
+
# EntityFacade is the caRuby substitue for the broken caTissue EntityManager. EntityManager is
|
|
15
9
|
# the caTissue singleton Winnebago object for doing lots of things with dynamic extensions.
|
|
16
10
|
class EntityFacade
|
|
17
11
|
include Singleton
|
|
18
12
|
|
|
19
13
|
private
|
|
20
14
|
|
|
21
|
-
# Initializes the
|
|
22
|
-
#
|
|
23
|
-
# method docs and {IdGenerator}.
|
|
15
|
+
# Initializes the id generator and a SQL executor. The id generator and executor are
|
|
16
|
+
# used for the caTissue bug work-arounds described in the method docs and {IdGenerator}.
|
|
24
17
|
def initialize
|
|
25
|
-
# the encapsulated caTissue singleton
|
|
26
|
-
@emgr = EntityManager.instance
|
|
27
18
|
# the work-around id generator
|
|
28
19
|
@idgen = IdGenerator.new
|
|
29
20
|
# a general-purpose SQL executor for calling the work-arounds
|
|
@@ -72,7 +63,11 @@ module CaTissue
|
|
|
72
63
|
# @param [Class] klass the {Annotatable} class
|
|
73
64
|
# @return [Integer] the class entity id
|
|
74
65
|
def hook_entity_id(klass)
|
|
75
|
-
|
|
66
|
+
result = @executor.execute { |dbh| dbh.select_one(HOOK_ENTITY_ID_SQL, klass.java_class.name) }
|
|
67
|
+
if result.nil? then raise AnnotationError.new("Entity id not found for static hook class #{klass.qp}") end
|
|
68
|
+
eid = result[0].to_i
|
|
69
|
+
logger.debug { "Static hook class #{klass.qp} has entity id #{eid}." }
|
|
70
|
+
eid
|
|
76
71
|
end
|
|
77
72
|
|
|
78
73
|
# caTissue alert - call into caTissue to get entity id doesn't work for non-primary object.
|
|
@@ -116,7 +111,7 @@ module CaTissue
|
|
|
116
111
|
# @return [Integer, nil] the parent entity id, if any
|
|
117
112
|
def parent_entity_id(eid)
|
|
118
113
|
result = @executor.execute { |dbh| dbh.select_one(PARENT_ENTITY_ID_SQL, eid) }
|
|
119
|
-
result[0] if result
|
|
114
|
+
result[0].to_i if result and result[0]
|
|
120
115
|
end
|
|
121
116
|
|
|
122
117
|
# Obtains the undocumented caTisue container id for the given primary entity id.
|
|
@@ -138,10 +133,10 @@ module CaTissue
|
|
|
138
133
|
# EntityManager.instance.get_container_id_for_entity(eid)
|
|
139
134
|
# Work-around caTissue bug with direct query.
|
|
140
135
|
result = @executor.execute { |dbh| dbh.select_one(CTR_ID_SQL, eid) }
|
|
141
|
-
|
|
142
|
-
if cid.nil? then
|
|
136
|
+
if result.nil? then
|
|
143
137
|
raise AnnotationError.new("Dynamic extension container id not found for annotation #{annotation} with entity id #{eid}")
|
|
144
138
|
end
|
|
139
|
+
cid = result[0].to_i
|
|
145
140
|
logger.debug { "Annotation with entity id #{eid} has container id #{cid}." }
|
|
146
141
|
cid
|
|
147
142
|
end
|
|
@@ -163,7 +158,7 @@ module CaTissue
|
|
|
163
158
|
pkg, cls_nm = klass.java_class.name.split('.')
|
|
164
159
|
# Dive into some obscure SQL
|
|
165
160
|
result = @executor.execute { |dbh| dbh.select_one(CTR_ENTITY_ID_SQL, pkg, cls_nm) }
|
|
166
|
-
result[0] if result
|
|
161
|
+
result[0].to_i if result
|
|
167
162
|
end
|
|
168
163
|
|
|
169
164
|
# @param (see #primary_entity_id)
|
|
@@ -213,20 +208,17 @@ module CaTissue
|
|
|
213
208
|
logger.debug { "Attempting to find entity id #{eid} #{role} associated entity id using variant #{alt}..." }
|
|
214
209
|
result = @executor.execute { |dbh| dbh.select_one(ASSN_ENTITY_ID_SQL, eid, alt) }
|
|
215
210
|
end
|
|
216
|
-
if result.nil? then
|
|
217
|
-
|
|
218
|
-
end
|
|
219
|
-
result[0] if result
|
|
220
|
-
end
|
|
221
|
-
|
|
222
|
-
# @param [String] designator the class name, demodulized in the case of an annotation entity
|
|
223
|
-
# @return [Integer] the caTissue entity id for the given class name
|
|
224
|
-
# @raise [CaRuby::DatabaseError] if the DE entity id is not found for the given designator
|
|
225
|
-
def entity_id_for_class_designator(designator)
|
|
226
|
-
@emgr.getEntityId(designator) or
|
|
227
|
-
raise CaRuby::DatabaseError.new("Dynamic extension entity id not found for #{designator}")
|
|
211
|
+
if result.nil? then logger.debug { "Entity id #{eid} is not directly associated with #{role}." } end
|
|
212
|
+
result[0].to_i if result
|
|
228
213
|
end
|
|
229
214
|
|
|
215
|
+
# The SQL to find an entity id for a primary entity.
|
|
216
|
+
HOOK_ENTITY_ID_SQL = <<EOS
|
|
217
|
+
select IDENTIFIER
|
|
218
|
+
from DYEXTN_ABSTRACT_METADATA
|
|
219
|
+
where NAME = ?
|
|
220
|
+
EOS
|
|
221
|
+
|
|
230
222
|
# The SQL to find an entity id for a primary entity.
|
|
231
223
|
CTR_ENTITY_ID_SQL = <<EOS
|
|
232
224
|
select ctr.ABSTRACT_ENTITY_ID
|
|
@@ -6,15 +6,17 @@ module CaTissue
|
|
|
6
6
|
class IntegrationService < CaRuby::PersistenceService
|
|
7
7
|
SERVICE_NAME = 'deintegration'
|
|
8
8
|
|
|
9
|
-
java_import
|
|
9
|
+
java_import 'deintegration.EntityMap'
|
|
10
10
|
|
|
11
|
-
java_import
|
|
11
|
+
java_import 'deintegration.EntityMapRecord'
|
|
12
12
|
|
|
13
|
-
java_import
|
|
13
|
+
java_import 'deintegration.FormContext'
|
|
14
14
|
|
|
15
15
|
# @param [EntityFacade] the global entity manager
|
|
16
16
|
def initialize
|
|
17
|
-
|
|
17
|
+
host = CaTissue.access_properties[:host]
|
|
18
|
+
port = CaTissue.access_properties[:port]
|
|
19
|
+
super(SERVICE_NAME, :host => host, :port => port)
|
|
18
20
|
# SQL executor to handle caTissue DE API bug work-around
|
|
19
21
|
@executor = CaRuby::SQLExecutor.new(CaTissue.access_properties)
|
|
20
22
|
end
|
data/lib/catissue/database.rb
CHANGED
|
@@ -313,7 +313,7 @@ module CaTissue
|
|
|
313
313
|
end
|
|
314
314
|
logger.debug { "Work around caTissue Bug #164 by setting the #{obj.qp} update template #{template.qp} external_identifiers to nil." }
|
|
315
315
|
template.external_identifiers = nil
|
|
316
|
-
elsif Annotation === obj and obj.class.
|
|
316
|
+
elsif Annotation === obj and obj.class.secondary? then
|
|
317
317
|
copy_annotation_proxy_owner_to_template(obj, template)
|
|
318
318
|
end
|
|
319
319
|
super
|
|
@@ -395,7 +395,7 @@ module CaTissue
|
|
|
395
395
|
specimen.is_available = true
|
|
396
396
|
oiqty = specimen.initial_quantity
|
|
397
397
|
oaqty = specimen.available_quantity
|
|
398
|
-
ostatus =
|
|
398
|
+
ostatus = specimen.activity_status
|
|
399
399
|
specimen.initial_quantity = 1.0
|
|
400
400
|
specimen.available_quantity = 1.0
|
|
401
401
|
specimen.activity_status = 'Active'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module CaTissue
|
|
2
2
|
# explicitly import AbstractDomainObject, since it is not in the default CaTissue package and therefore can't be auto-imported
|
|
3
|
-
java_import
|
|
3
|
+
java_import Java::edu.wustl.common.domain.AbstractDomainObject
|
|
4
4
|
|
|
5
5
|
class AbstractDomainObject
|
|
6
6
|
include Resource
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'catissue/util/position'
|
|
2
2
|
|
|
3
3
|
module CaTissue
|
|
4
|
-
java_import
|
|
4
|
+
java_import Java::edu.wustl.catissuecore.domain.AbstractPosition
|
|
5
5
|
|
|
6
6
|
# The +caTissue+ AbstractPosition class is augmented with a comparison operator and the
|
|
7
7
|
# zero-based +row+ and +column+ methods wrapping the corresponding one-based dimension
|
|
@@ -2,7 +2,7 @@ require 'catissue/domain/scg_event_parameters'
|
|
|
2
2
|
|
|
3
3
|
module CaTissue
|
|
4
4
|
# import the Java class
|
|
5
|
-
java_import
|
|
5
|
+
java_import Java::edu.wustl.catissuecore.domain.CollectionEventParameters
|
|
6
6
|
|
|
7
7
|
class CollectionEventParameters
|
|
8
8
|
include Resource, SCGEventParameters
|
|
@@ -3,7 +3,7 @@ require 'catissue/domain/hash_code'
|
|
|
3
3
|
|
|
4
4
|
module CaTissue
|
|
5
5
|
# import the Java class
|
|
6
|
-
java_import
|
|
6
|
+
java_import Java::edu.wustl.catissuecore.domain.CollectionProtocol
|
|
7
7
|
|
|
8
8
|
# The CollectionProtocol domain class.
|
|
9
9
|
class CollectionProtocol
|
|
@@ -3,7 +3,7 @@ require 'catissue/domain/hash_code'
|
|
|
3
3
|
|
|
4
4
|
module CaTissue
|
|
5
5
|
# import the Java class
|
|
6
|
-
java_import
|
|
6
|
+
java_import Java::edu.wustl.catissuecore.domain.CollectionProtocolEvent
|
|
7
7
|
|
|
8
8
|
# The CollectionProtocolRegistration domain class.
|
|
9
9
|
class CollectionProtocolEvent
|