class Veritrans::Tercerog::Mdk::MdkJsonQuery
MdkJsonQuery クラス
リクエストDTOから取得するJSON生成用ハッシュの生成を管理するクラス
Constants
- DQUOTE_CHAR
ダブルクオート
- DQUOTE_CHAR_ESCAPE
ダブルクオートエスケープ文字列
Attributes
name_array[R]
Public Class Methods
new(dto)
click to toggle source
コンストラクタ¶ ↑
コンフィグファイルからデータを取得して当クラスを使用できる状態にする。
- @param
-
dto 処理対象Dto
# File tgMdk/lib/tg_mdk/mdk_json_query.rb, line 36 def initialize(dto) # コンフィグクラス生成 config = Veritrans::Tercerog::Mdk::MdkConfig.instance # DTOの文字エンコードを取得 @encode = config[:DTO_ENCODE] # JSON生成用ハッシュ作成 @name_array = to_json_hash(dto) end
Private Instance Methods
get_attr_value(key, value)
click to toggle source
属性値を取得する。¶ ↑
指定した属性値がDTOである場合はJSON形式に変換可能なハッシュに置き換える。
- @param
-
key キー
- @param
-
value 値
- @return
-
属性値
# File tgMdk/lib/tg_mdk/mdk_json_query.rb, line 93 def get_attr_value(key, value) if value.nil? return nil end result = nil if value.is_a?(String) # 設定値が文字列 if !value.empty? result = Veritrans::Tercerog::Mdk::MdkUtils::mdk_encode_from(@encode, value) end elsif value.is_a?(Array) # 設定値が配列 result = [] value.each do |element| attr_value = get_attr_value(key, element) if !attr_value.nil? && !attr_value.empty? result << attr_value end end elsif !value.instance_variables.empty? # 設定値がオブジェクト result = to_json_hash(value) else # 判定できない無効なクラスが指定されている msg = "#{key} is invalid type '#{value.class.name}'" Veritrans::Tercerog::Mdk::logger.error(msg) raise Veritrans::Tercerog::Mdk::MdkError.new(Veritrans::Tercerog::Mdk::MdkMessage::MA07_INVALID_DTO_VALUE_TYPE, key, value.class.name) end if result.nil? || result.empty? return nil end return result end
to_json_hash(dto)
click to toggle source
Dtoに設定されたパラメータを取得しJSON生成用ハッシュを生成する¶ ↑
- @param
-
dto 処理対象Dto
- @return
-
JSON生成用ハッシュ
# File tgMdk/lib/tg_mdk/mdk_json_query.rb, line 60 def to_json_hash(dto) if dto.nil? return {} end result_hash = {} # DTOのインスタンス変数を取得 dto.instance_variables.each do |name| # インスタンス変数の値を取得 name = name.to_s # for ruby 1.9 value = dto.instance_variable_get(name) attr_name = name.mdk_camelize[1, name.length - 1] attr_value = get_attr_value(attr_name, value) if !attr_value.nil? && !attr_value.empty? result_hash.store(attr_name, attr_value) end end return result_hash end