module ActiveFedora::FedoraObject

def add_datastream(datastream)

Adds datastream to the object. Saves the datastream to fedora upon adding.
def add_datastream(datastream)
  datastream.pid = self.pid
  datastream.save
end

def datastreams

def datastreams
  datastreams = {}
  self.datastreams_xml['datastream'].each do |ds|
    ds.merge!({:pid => self.pid, :dsID => ds["dsid"]})
    datastreams.merge!({ds["dsid"] => ActiveFedora::Datastream.new(ds)})
  end
  return datastreams
end

def datastreams_xml

def datastreams_xml
  datastreams_xml = XmlSimple.xml_in(Fedora::Repository.instance.fetch_custom(self.pid, :datastreams))
end

def dc

DC Datastream
def dc
  #dc = REXML::Document.new(datastreams["DC"].content)
  return datastreams["DC"]
end

def delete

def delete
  Fedora::Repository.instance.delete(@inner_object)
end

def errors

def errors
  @inner_object.errors
end

def initialize

def initialize
  @inner_object = Fedora::FedoraObject.new
  Fedora::Repository.instance.save @inner_object
end

def inner_object

def inner_object
  @inner_object
end

def owner_id

def owner_id
  @inner_object.owner_id
end

def pid

def pid
  @inner_object.pid
end

def rels_ext

RELS-EXT Datastream
def rels_ext
  if !datastreams.has_key?("RELS-EXT")
    add(ActiveFedora::RelsExtDatastream.new)
  end
    
  return datastreams["RELS-EXT"]
end

def save

def save
  Fedora::Repository.instance.save(@inner_object)
end

def state

def state
  @inner_object.state
end