class Rex::Java::Serialization::Model::ClassDesc

This class provides a Java classDesc representation

Attributes

description[RW]

Public Class Methods

new(stream = nil) click to toggle source

@param stream [Rex::Java::Serialization::Model::Stream] the stream where it belongs to

Calls superclass method
# File lib/rex/java/serialization/model/class_desc.rb, line 14
def initialize(stream = nil)
  super(stream)
  self.description = nil
end

Public Instance Methods

decode(io) click to toggle source

Deserializes a Rex::Java::Serialization::Model::ClassDesc

@param io [IO] the io to read from @return [self] if deserialization succeeds @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed

# File lib/rex/java/serialization/model/class_desc.rb, line 24
def decode(io)
  content = decode_content(io, stream)
  allowed_contents = [NullReference, NewClassDesc, Reference, ProxyClassDesc]

  unless allowed_contents.include?(content.class)
    raise Rex::Java::Serialization::DecodeError, 'ClassDesc unserialize failed'
  end

  self.description = content
  self
end
encode() click to toggle source

Serializes the Rex::Java::Serialization::Model::ClassDesc

@return [String] if serialization succeeds @raise [Rex::Java::Serialization::EncodeError] if serialization doesn't succeed

# File lib/rex/java/serialization/model/class_desc.rb, line 40
def encode
  encoded = ''
  allowed_contents = [NullReference, NewClassDesc, Reference, ProxyClassDesc]

  unless allowed_contents.include?(description.class)
    raise Rex::Java::Serialization::EncodeError, 'Failed to serialize ClassDesc'
  end

  encoded << encode_content(description)

  encoded
end
to_s() click to toggle source

Creates a print-friendly string representation

@return [String]

# File lib/rex/java/serialization/model/class_desc.rb, line 56
def to_s
  print_content(description)
end