class BinData::SanitizedPrototype

def has_parameter?(param)

def has_parameter?(param)
  if @factory
    @factory.has_parameter?(param)
  else
    @obj_params.has_parameter?(param)
  end
end

def initialize(obj_type, obj_params, endian)

def initialize(obj_type, obj_params, endian)
  endian = endian.endian if endian.respond_to? :endian
  obj_params ||= {}
  if BinData::Base === obj_type
    obj_class = obj_type
  else
    obj_class = RegisteredClasses.lookup(obj_type, endian)
  end
  if BinData::Base === obj_class
    @factory = obj_class
  else
    @obj_class  = obj_class
    @obj_params = SanitizedParameters.new(obj_params, @obj_class, endian)
  end
end

def instantiate(value = nil, parent = nil)

def instantiate(value = nil, parent = nil)
  @factory ||= @obj_class.new(@obj_params)
  @factory.new(value, parent)
end