class KPM::System

def show_java_system_information(command, output_as_json)

def show_java_system_information(command, output_as_json)
  java_system = {}
  property_count = 0
  last_key = ''
  `#{command}`.split("\n").each do |prop|
    break if prop.to_s.strip.empty?
    if property_count > 0
      props = prop.split('=')
      if !(props[1].nil? && props[1].to_s.strip.size > MAX_VALUE_COLUMN_WIDTH) && output_as_json == false
        chunks = ".{1,#{MAX_VALUE_COLUMN_WIDTH}}"
        props[1].to_s.scan(/#{chunks}/).each_with_index do |p, index|
          java_system[property_count] = { java_property: index.equal?(0) ? props[0] : '', value: p }
          property_count += 1
        end
      elsif output_as_json
        key = (props[1].nil? ? last_key : props[0]).to_s.strip
        value = props[1].nil? ? props[0] : props[1]
        if java_system.key?(key)
          java_system[key][:value] = java_system[key][:value].to_s.concat(' ').concat(value)
        else
          java_system[key] = { java_property: key, value: value }
        end
      else
        java_system[property_count] = { java_property: props[1].nil? ? '' : props[0], value: props[1].nil? ? props[0] : props[1] }
      end
      last_key = props[1].nil? ? last_key : props[0]
    end
    property_count += 1
  end
  labels = [{ label: :java_property },
            { label: :value }]
  @formatter.format(java_system, labels) unless output_as_json
  java_system
end