class Blufin::YmlJavaCronTypeWriter
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_cron_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_domain_gsub = @site_domain.strip == '' ? '' : "#{@site_domain}." @site_location = "#{Blufin::SiteResolver::get_site_location(@site)}/" @class_name = 'CronType' @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.AbstractCronType; import #{@site_domain_gsub}#{@site_name.gsub('-', '.')}.lib.enums.system.MessageType; import lombok.Getter; import java.util.HashMap; import java.util.Map; public enum #{@class_name} implements AbstractCronType { #{PLACEHOLDER_ONE} private static final Map<String, #{@class_name}> map = new HashMap<>(); @Getter private String name; @Getter private MessageType messageType; static { #{PLACEHOLDER_TWO} } /** * @param name * @param messageType */ #{@class_name}(String name, MessageType messageType) { this.name = name; this.messageType = messageType; } /** * Get CronType by its String representation. * @param name */ public static CronType 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_cron_type_writer.rb, line 86 def write ph1 = [] ph2 = [] cron_types = Blufin::YmlConfigValidator::get_cron_types # Don't write the class if there are no cron types. return if cron_types.nil? || cron_types.length == 0 cron_types.each_with_index do |(key, value), idx| comma_or_semicolon = (idx == (cron_types.length - 1)) ? ';' : ',' ph1 << " #{key.upcase}(\"#{key.upcase}\", MessageType.#{value[Blufin::YmlConfigValidator::MESSAGE].upcase})#{comma_or_semicolon}" ph2 << " map.put(\"#{key.upcase}\", #{@class_name}.#{key.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