###
# #%L
# aiSSEMBLE::Test::MDA::Machine Learning::Inference
# %%
# Copyright (C) 2021 Booz Allen
# %%
# This software package is licensed under the Booz Allen Public License. All Rights Reserved.
# #L%
###
from abc import ABC


class DateAsSecondsSinceEpochBase(ABC):
    """
    Base implementation of the dateAsSecondsSinceEpoch dictionary type from BaseCyberTypesDictionary.

    GENERATED CODE - DO NOT MODIFY (add your customizations in DateAsSecondsSinceEpoch).

    Generated from: templates/data-delivery-data-records/dictionary.type.base.py.vm
    """

    MIN_VALUE: int = int('0')


    def __init__(self, value: int):
        if value is not None:
            self._value = int(value)
        else:
            self._value = None


    @property
    def value(self) -> int:
        return self._value


    @value.setter
    def value(self, value: int) -> None:
        if value is not None:
            value = int(value)
            self._value = value
        else:
            self._value = None


    def validate(self) -> None:
        """
        Performs the validation for this dictionary type.
        """
        self.validate_value()


    def validate_value(self) -> None:
        if (self._value is not None) and (self._value < DateAsSecondsSinceEpochBase.MIN_VALUE):
            raise ValueError('DateAsSecondsSinceEpoch value of \'%s\' is less than the minimum value of %s' % (self._value, DateAsSecondsSinceEpochBase.MIN_VALUE))
