"""Analyzer result attribute container."""

from acstore.containers import interface
from acstore.containers import manager


class AnalyzerResult(interface.AttributeContainer):
  """Attribute container to store results of analyzers.

  Analyzers can produce results with different attribute names. For example, the
  'hashing' analyzer could produce an attribute 'md5_hash', with a value of
  'd41d8cd98f00b204e9800998ecf8427e'.

  Attributes:
    analyzer_name (str): name of the analyzer that produce the result.
    attribute_name (str): name of the attribute produced.
    attribute_value (str): value of the attribute produced.
  """

  CONTAINER_TYPE = 'analyzer_result'

  def __init__(self):
    """Initializes an analyzer result."""
    super().__init__()
    self.analyzer_name = None
    self.attribute_name = None
    self.attribute_value = None


manager.AttributeContainersManager.RegisterAttributeContainer(AnalyzerResult)
