Class: Guff::JavaSource::Constructor

Inherits:
Object
  • Object
show all
Includes:
ArgumentsHelper, AnnotationSupport, ClassMember, JavadocSupport, ParameterSupport, ThrowsSupport
Defined in:
lib/guff/java_source.rb

Direct Known Subclasses

Method

Instance Method Summary collapse

Methods included from ArgumentsHelper

#ensure_array

Methods included from ParameterSupport

#parameters, #parameters_list, #takes, #taking

Methods included from AnnotationSupport

#add_annotation, #annotations, #write_annotations_to

Methods included from JavadocSupport

#add_javadoc, #javadoc_lines, #write_javadoc_to

Methods included from ThrowsSupport

#append_throws_clause, #exceptions, #throws

Methods included from ClassMember

#import

Constructor Details

#initialize(owning_class, name) ⇒ Constructor

Returns a new instance of Constructor.



259
260
261
262
263
# File 'lib/guff/java_source.rb', line 259

def initialize(owning_class,name)
    @owning_class=owning_class
    @name = name
    @body = Body.default_body
end

Instance Method Details

#add_assignment_for_field_name(body, field_name) ⇒ Object



285
286
287
# File 'lib/guff/java_source.rb', line 285

def add_assignment_for_field_name(body,field_name)
    body.line("this.#{field_name}=#{field_name};")
end

#add_takes_clause_for_field(field_name) ⇒ Object



289
290
291
292
# File 'lib/guff/java_source.rb', line 289

def add_takes_clause_for_field(field_name)
    field=@owning_class.get_field_named(field_name)
    takes(field.name, field.declared_type)
end

#body {|@body| ... } ⇒ Object

Yields:



265
266
267
268
269
# File 'lib/guff/java_source.rb', line 265

def body
    @body = Body.new
    yield @body
    self
end

#for_field(field_name) ⇒ Object



271
272
273
274
275
276
# File 'lib/guff/java_source.rb', line 271

def for_field(field_name)
    add_takes_clause_for_field(field_name)
    body {|body|
        add_assignment_for_field_name(body,field_name)
    }
end

#for_fields(*field_names) ⇒ Object



278
279
280
281
282
283
# File 'lib/guff/java_source.rb', line 278

def for_fields(*field_names)
    field_names.each {|field_name| add_takes_clause_for_field(field_name)}
    body {|body|
        field_names.each {|field_name| add_assignment_for_field_name(body,field_name)}
    }
end

#write_declaration(writer) ⇒ Object



303
304
305
# File 'lib/guff/java_source.rb', line 303

def write_declaration(writer)
    writer.append("public #{@name}(" ).append(parameters_list).append(")")
end

#write_to(writer) ⇒ Object



294
295
296
297
298
299
300
301
# File 'lib/guff/java_source.rb', line 294

def write_to(writer)
    writer.ensure_member_separation_line
    write_javadoc_to(writer)
    write_annotations_to(writer)
    write_declaration(writer)
    append_throws_clause(writer)
    @body.write_to(writer) unless @body.nil?
end