class Blufin::YmlJavaWorkerWriter

Constants

MESSAGE_HANDLER
MESSAGE_HANDLER_MAPPER
PACKAGE
PLACEHOLDER_IMP
PLACEHOLDER_PUT
PLACEHOLDER_SITE_DOMAIN
PLACEHOLDER_SITE_NAME
SERVICE

Public Class Methods

new(site) click to toggle source

Initialize the class. @return void

# File lib/core/yml_writers/yml_java_worker_writer.rb, line 18
        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_domain_gsub = @site_domain.strip == '' ? '' : "#{@site_domain}."
            @site_location    = "#{Blufin::SiteResolver::get_site_location(@site)}/"

            # Wipe out parent file.
            Blufin::Files::delete_file("#{get_java_path(@site, nil, SERVICE, PLACEHOLDER_PUT)}/#{MESSAGE_HANDLER_MAPPER}.java")

            @template_parent = <<TEMPLATE
package #{PLACEHOLDER_PACKAGE};

import org.blufin.worker.queue.MessageHandlerInterface;
import #{PLACEHOLDER_SITE_DOMAIN}#{PLACEHOLDER_SITE_NAME}.lib.enums.system.MessageType;
#{PLACEHOLDER_IMP}

import java.util.HashMap;
import java.util.Map;

public class #{MESSAGE_HANDLER_MAPPER} {

    public static Map<String, MessageHandlerInterface> getMap() {

        Map<String, MessageHandlerInterface> map = new HashMap<>();

#{PLACEHOLDER_PUT}

        return map;
    }
}
TEMPLATE

        end

Public Instance Methods

write() click to toggle source

Write the file(s). @return void

# File lib/core/yml_writers/yml_java_worker_writer.rb, line 56
def write

    imp_statements = ''
    put_statements = ''

    message_types = Blufin::YmlConfigValidator::get_message_types.keys
    message_types.each_with_index do |message_type, idx|
        new_line_or_not = (idx == (message_types.length - 1)) ? '' : "\n"
        imp_statements  += "import #{@site_domain_gsub}#{@site_name.gsub('-', '.')}.worker.messages.#{Blufin::Strings::snake_case_to_camel_case_lower(message_type)}.#{Blufin::Strings::snake_case_to_camel_case(message_type)}#{MESSAGE_HANDLER};#{new_line_or_not}"
        put_statements  += "        map.put(MessageType.#{message_type.upcase.gsub('-', '_')}.toString(), new #{Blufin::Strings::snake_case_to_camel_case(message_type)}#{MESSAGE_HANDLER}());#{new_line_or_not}"
    end

    contents = @template_parent
    contents = contents.gsub(PLACEHOLDER_PACKAGE, get_package(@site, nil, PACKAGE, SERVICE))
    contents = contents.gsub(PLACEHOLDER_IMP, imp_statements)
    contents = contents.gsub(PLACEHOLDER_PUT, put_statements)
    contents = contents.gsub(PLACEHOLDER_SITE_NAME, @site_name.gsub('-', '.'))
    contents = contents.gsub(PLACEHOLDER_SITE_DOMAIN, @site_domain_gsub)

    write_file_java("#{get_java_path(@site, nil, SERVICE, PACKAGE)}/#{MESSAGE_HANDLER_MAPPER}.java", Blufin::YmlCommon::convert_string_to_line_array(contents))

end