def find_in_context(context, desc_elements)
if context.is_a?(EPackage)
r = (context.eClassifiers + context.eSubpackages).find{|c| c.name == desc_elements.first}
elsif context.is_a?(EClass)
r = context.eStructuralFeatures.find{|s| s.name == desc_elements.first}
else
raise StandardError.new("Don't know how to find #{desc_elements.join('/')} in context #{context}")
end
if r
if desc_elements.size > 1
find_in_context(r, desc_elements[1..-1])
else
r
end
else
log WARN, "Can not follow path, element #{desc_elements.first} not found within #{context}(#{context.name})"
end
end