class Rex::Java::Serialization::Model::NewClass

This class provides a NewArray (Java Array) representation

Attributes

class_description[RW]

@!attribute array_description

@return [Java::Serialization::Model::ClassDesc] The description of the class

Public Class Methods

new(stream = nil) click to toggle source

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

# File lib/rex/java/serialization/model/new_class.rb, line 16
def initialize(stream = nil)
  super(stream)
  self.class_description = nil
end

Public Instance Methods

decode(io) click to toggle source

Deserializes a Rex::Java::Serialization::Model::NewClass

@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/new_class.rb, line 26
def decode(io)
  self.class_description = ClassDesc.decode(io, stream)
  stream.add_reference(self) unless stream.nil?

  self
end
encode() click to toggle source

Serializes the Rex::Java::Serialization::Model::NewClass

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

# File lib/rex/java/serialization/model/new_class.rb, line 37
def encode
  unless class_description.kind_of?(ClassDesc)
    raise Rex::Java::Serialization::EncodeError, 'Failed to serialize NewClass'
  end

  encoded = ''
  encoded << class_description.encode
end
to_s() click to toggle source

Creates a print-friendly string representation

@return [String]

# File lib/rex/java/serialization/model/new_class.rb, line 49
def to_s
  print_content(class_description)
end