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