require 'xcodeproject/node'

module XCodeProject
	class PBXBuildFile < Node
		attr_reader :file_ref

		def initialize (root, uuid, data)
			super(root, uuid, data)

			@file_ref = data['fileRef']
		end

		def file_ref
			root.object!(@file_ref)
		end

		def remove!
			root.project.targets.each {|target| target.remove_source(self) }
			root.remove_object(uuid)
		end

		def self.add(root, file_ref_uuid)
			uuid, data = root.add_object(self.create_object_hash(file_ref_uuid)) 
			self.new(root, uuid, data)
		end

	private

		def self.create_object_hash (file_ref_uuid)
			data = []
			data << ['isa', 'PBXBuildFile']
			data << ['fileRef', file_ref_uuid]
			
			Hash[ data ]
		end
	end
end