class Blufin::YmlJavaMessageTypeWriter
Constants
- PACKAGE
- PLACEHOLDER_ONE
- PLACEHOLDER_TWO
- SERVICE
Public Class Methods
new(site)
click to toggle source
Initialize the class. @return void
# File lib/core/yml_writers/yml_java_message_type_writer.rb, line 13 def initialize(site) @site = Blufin::SiteResolver::validate_site(site) @site_name = Blufin::SiteResolver::get_site_name(@site) @site_domain = Blufin::SiteResolver::get_site_domain(@site) @site_location = "#{Blufin::SiteResolver::get_site_location(@site)}/" @class_name = 'MessageType' @filename = "#{get_java_path(@site, nil, SERVICE, PACKAGE)}/#{@class_name}.java" # Wipe out previous file (if exists). Blufin::Files::delete_file(@filename) @template = <<TEMPLATE package #{PLACEHOLDER_PACKAGE}; import org.blufin.base.interfaces.AbstractMessageType; import lombok.Getter; import java.util.HashMap; import java.util.Map; public enum #{@class_name} implements AbstractMessageType { #{PLACEHOLDER_ONE} private static final Map<String, #{@class_name}> map = new HashMap<>(); @Getter private String name; static { #{PLACEHOLDER_TWO} } /** * @param name */ #{@class_name}(String name) { this.name = name; } /** * Get MessageType by its String representation. * @param name */ public static MessageType get(String name) { return map.get(name); } @Override public String toString() { return name; } } TEMPLATE end
Public Instance Methods
write()
click to toggle source
Write the file(s). @return void
# File lib/core/yml_writers/yml_java_message_type_writer.rb, line 79 def write ph1 = [] ph2 = [] message_types = Blufin::YmlConfigValidator::get_message_types.keys # Don't write the class if there are no message types. return if message_types.nil? || message_types.length == 0 message_types.each_with_index do |message_type, idx| comma_or_semicolon = (idx == (message_types.length - 1)) ? ';' : ',' ph1 << " #{message_type.upcase}(\"#{message_type.upcase}\")#{comma_or_semicolon}" ph2 << " map.put(\"#{message_type.upcase}\", MessageType.#{message_type.upcase});" end contents = @template contents = contents.gsub(PLACEHOLDER_PACKAGE, get_package(@site, nil, PACKAGE, SERVICE)) contents = contents.gsub(PLACEHOLDER_ONE, Blufin::YmlCommon::convert_line_array_to_string(ph1)) contents = contents.gsub(PLACEHOLDER_TWO, Blufin::YmlCommon::convert_line_array_to_string(ph2)) write_file_java(@filename, Blufin::YmlCommon::convert_string_to_line_array(contents)) end