# Copyright: Copyright 2009 Topic Maps Lab, University of Leipzig. # License: Apache License, Version 2.0 module RTM::AR class Topics < TMSetDelegator def wrap(obj) Topic.wrap(obj) end end class Constructs < TMSetDelegator def wrap(obj) Construct.wrap(obj) end end class Associations < TMSetDelegator def wrap(obj) Association.wrap(obj) end end class Names < TMSetDelegator def wrap(obj) Name.wrap(obj) end end class Occurrences < TMSetDelegator def wrap(obj) Occurrence.wrap(obj) end end class Roles < TMSetDelegator def wrap(obj) Role.wrap(obj) end end class Reifiables < TMSetDelegator def wrap(obj) Construct.wrap(obj) end end class Variants < TMSetDelegator def wrap(obj) Variant.wrap(obj) end end class TopicMaps < TMSetDelegator def [](obj) # support for getting topic_map by base_locator if obj.is_a? String # return wrap(__getobj__.find { |tm| tm.base_locator == obj }) return wrap(TMDM::TopicMap.find_by_base_locator(obj)) end # normal index retrieval super end def wrap(obj) TopicMap.wrap(obj) end end class Locators < TMSetDelegator def [](obj) # support for getting locators by reference if obj.is_a? String return wrap(__getobj__.find { |tm| tm.reference == obj }) end # normal index retrieval super end def wrap(obj) return nil unless obj return obj if obj.respond_to? :__getobj__ case obj.class.name when "RTM::AR::TMDM::ItemIdentifier" ItemIdentifier.wrap(obj) when "RTM::AR::TMDM::SubjectIdentifier" SubjectIdentifier.wrap(obj) when "RTM::AR::TMDM::SubjectLocator" SubjectLocator.wrap(obj) else Locator.wrap(obj) end end end class ItemIdentifiers < Locators def wrap(obj) ItemIdentifier.wrap(obj) end end class SubjectIdentifiers < Locators def wrap(obj) SubjectIdentifier.wrap(obj) end end class SubjectLocators < Locators def wrap(obj) SubjectLocator.wrap(obj) end end end