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, hints)
def initialize(obj_type, obj_params, hints) raw_hints = hints.dup if raw_hints[:endian].respond_to?(:endian) raw_hints[:endian] = raw_hints[:endian].endian end obj_params ||= {} if BinData::Base === obj_type obj_class = obj_type else obj_class = RegisteredClasses.lookup(obj_type, raw_hints) end if BinData::Base === obj_class @factory = obj_class else @obj_class = obj_class @obj_params = SanitizedParameters.new(obj_params, @obj_class, hints) 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