Class: RGen::ModelBuilder::ReferenceResolver
- Inherits:
-
Object
- Object
- RGen::ModelBuilder::ReferenceResolver
show all
- Defined in:
- lib/rgen/model_builder/reference_resolver.rb
Defined Under Namespace
Classes: ResolverException, ResolverJob, ToplevelNamespace
Instance Method Summary
collapse
Constructor Details
Returns a new instance of ReferenceResolver.
23
24
25
26
|
# File 'lib/rgen/model_builder/reference_resolver.rb', line 23
def initialize
@jobs = []
@elementName = {}
end
|
Instance Method Details
#addJob(job) ⇒ Object
28
29
30
|
# File 'lib/rgen/model_builder/reference_resolver.rb', line 28
def addJob(job)
@jobs << job
end
|
#resolve(ns = []) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/rgen/model_builder/reference_resolver.rb', line 36
def resolve(ns=[])
@toplevelNamespace = ToplevelNamespace.new(ns)
(@jobs || []).each_with_index do |job, i|
target = resolveReference(job.namespace || @toplevelNamespace, job.string.split("."))
raise ResolverException.new("Can not resolve reference #{job.string}") unless target
if job.reference.many
job.receiver.addGeneric(job.reference.name, target)
else
job.receiver.setGeneric(job.reference.name, target)
end
end
end
|
#setElementName(element, name) ⇒ Object
32
33
34
|
# File 'lib/rgen/model_builder/reference_resolver.rb', line 32
def setElementName(element, name)
@elementName[element] = name
end
|