Skip to content

Instantly share code, notes, and snippets.

@trung
Created October 22, 2009 02:26
Show Gist options
  • Save trung/215665 to your computer and use it in GitHub Desktop.
Save trung/215665 to your computer and use it in GitHub Desktop.
%% This is auto generated file. Please don't edit it
-module(record_utils).
-compile(export_all).
-include("messages.hrl").
fields(abstract_message) ->
["clientId", "destination", "messageId", "timestamp", "timeToLive", "headers", "body"];
fields(async_message) ->
fields(abstract_message) ++ ["correlationId", "correlationIdBytes"].
fields_atom(abstract_message) ->
lists:flatten([clientId, destination, messageId, timestamp, timeToLive, headers, body]);
fields_atom(async_message) ->
lists:flatten([fields_atom(abstract_message), correlationId, correlationIdBytes]).
get(Obj, body) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.body};
get(Obj, clientId) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.clientId};
get(Obj, destination) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.destination};
get(Obj, headers) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.headers};
get(Obj, messageId) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.messageId};
get(Obj, timeToLive) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.timeToLive};
get(Obj, timestamp) when is_record(Obj, abstract_message) ->
{ok, Obj#abstract_message.timestamp};
get(Obj, correlationId) when is_record(Obj, async_message) ->
{ok, Obj#async_message.correlationId};
get(Obj, correlationIdBytes) when is_record(Obj, async_message) ->
{ok, Obj#async_message.correlationIdBytes};
get(Obj, parent) when is_record(Obj, async_message) ->
{ok, Obj#async_message.parent};
get(Obj, ParentProperty) when is_record(Obj, async_message) and is_atom(ParentProperty) ->
get(Obj#async_message.parent, ParentProperty).
set(Obj, body, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{body = Value},
{ok, NewObj, {body, Value}};
set(Obj, clientId, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{clientId = Value},
{ok, NewObj, {clientId, Value}};
set(Obj, destination, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{destination = Value},
{ok, NewObj, {destination, Value}};
set(Obj, headers, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{headers = Value},
{ok, NewObj, {headers, Value}};
set(Obj, messageId, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{messageId = Value},
{ok, NewObj, {messageId, Value}};
set(Obj, timeToLive, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{timeToLive = Value},
{ok, NewObj, {timeToLive, Value}};
set(Obj, timestamp, Value) when is_record(Obj, abstract_message) ->
NewObj = Obj#abstract_message{timestamp = Value},
{ok, NewObj, {timestamp, Value}};
set(Obj, correlationId, Value) when is_record(Obj, async_message) ->
NewObj = Obj#async_message{correlationId = Value},
{ok, NewObj, {correlationId, Value}};
set(Obj, correlationIdBytes, Value) when is_record(Obj, async_message) ->
NewObj = Obj#async_message{correlationIdBytes = Value},
{ok, NewObj, {correlationIdBytes, Value}};
set(Obj, parent, Value) when is_record(Obj, async_message) and is_record(Value, abstract_message) ->
NewObj = Obj#async_message{parent = Value},
{ok, NewObj, {parent, Value}};
set(Obj, ParentProperty, Value) when is_record(Obj, async_message) and is_atom(ParentProperty) ->
{ok, NewParentObject, _} = set(Obj#async_message.parent, ParentProperty, Value),
set(Obj, parent, NewParentObject).
type(Obj) when is_record(Obj, abstract_message) -> abstract_message;
type(Obj) when is_record(Obj, async_message) -> async_message;
type(_) -> undefined.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment