class ActiveFedora::NomDatastream

def self.decorate_ng_xml(xml)

def self.decorate_ng_xml(xml)
  xml.set_terminology terminology_options, &terminology
  xml.nom!
  xml
end

def self.set_terminology(options = {}, &block)

def self.set_terminology(options = {}, &block)
  @terminology_options = options || {}
  @terminology = block
end

def self.terminology

def self.terminology
  @terminology
end

def self.terminology_options

def self.terminology_options
  @terminology_options
end

def default_mime_type

def default_mime_type
  'text/xml'
end

def method_missing method, *args, &block

def method_missing method, *args, &block
  if ng_xml.respond_to? method
    ng_xml.send(method, *args, &block)
  else
    super
  end
end

def respond_to? *args

def respond_to? *args
  super || self.class.terminology.respond_to?(*args)
end

def serialize!

def serialize!
   self.content = @ng_xml.to_s if @ng_xml
end

def to_solr

def to_solr
  solr_doc = {}
  ng_xml.terminology.flatten.select { |x| x.options[:index] }.each do |term|
    term.values.each do |v|
      Array(term.options[:index]).each do |index_as|
        solr_doc[index_as] ||= []
        if v.is_a? Nokogiri::XML::Node
          solr_doc[index_as] << v.text
        else
          solr_doc[index_as] << v
        end
      end
    end
  end
  solr_doc
end