Module: Java::OrgEclipseEmfEcore::EObject::NavigationMethods
- Included in:
- Java::OrgEclipseEmfEcore::EObject, Java::OrgEclipseEmfEcoreImpl::BasicEObjectImpl, Java::OrgEclipseEmfEcoreResourceImpl::ResourceImpl
- Defined in:
- lib/emf/emf_nav.rb
Class Method Summary collapse
Instance Method Summary collapse
- #children ⇒ Object
- #children_deep ⇒ Object
- #only_child_deep_of_eclass(eclass) ⇒ Object
- #only_child_of_eclass(eclass) ⇒ Object
Class Method Details
.only_of_class(collection, eclass) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/emf/emf_nav.rb', line 46 def self.only_of_class(collection,eclass) selected = collection.select {|o| o.eClass.isSuperTypeOf eclass} case selected.count when 0 raise EMF::LessThanExpectedFound.new when 1 return selected.first else raise EMF::MoreThanExpectedFound.new end end |
Instance Method Details
#children ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/emf/emf_nav.rb', line 11 def children method = nil method = :eContents if respond_to?(:eContents) method = :old_contents if respond_to?(:old_contents) method = :getContents if respond_to?(:getContents) raise "No method for getting contents, class: #{self.class}" unless method!=nil res = (send method) obj = self res end |
#children_deep ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/emf/emf_nav.rb', line 22 def children_deep l = [] children.each do |c| l << c begin grand_children = c.children_deep rescue Exception => e raise "Problem getting children of #{c} (#{c.class}): #{e}" end grand_children.each do |sc| l << sc end end l end |
#only_child_deep_of_eclass(eclass) ⇒ Object
42 43 44 |
# File 'lib/emf/emf_nav.rb', line 42 def only_child_deep_of_eclass(eclass) Java::OrgEclipseEmfEcore::EObject::.only_of_class(children_deep,eclass) end |
#only_child_of_eclass(eclass) ⇒ Object
38 39 40 |
# File 'lib/emf/emf_nav.rb', line 38 def only_child_of_eclass(eclass) Java::OrgEclipseEmfEcore::EObject::.only_of_class(children,eclass) end |