attr_accessor :jmessage def initialize(message=nil, options={}) if message.kind_of? org.jgroups.Message @jmessage = message else @jmessage = org.jgroups.Message.new(options[:destination], options[:source], message) end end def self.from_jmessage(jmessage) self.new.jmessage = jmessage end # So other classes call Message.new(jmessage) Message.new("Here is my message" # Message.from_jmessage(jmessage)