각 CER 타임라인에는 CER 규칙 세트, 규칙 테스트 및 CER의 클라이언트인 모든 코드에서 타임라인에 대해 작업하기 전에 알아야 하는 몇 가지 중요한 특성이 있습니다.
- 각 CER 타임라인은 불변입니다(CER에서 사용되는 모든 데이터 유형과 마찬가지임).
- 타임라인에 대한 각 참조는 타임라인에 보유된 값의 유형으로 매개변수화됩니다. 이러한 참조는 기본 요소(예: 문자열, 날짜, 수, 부울 등)이거나 임의의 복합 유형(예: 규칙 클래스) 또는 매개변수화된 또 다른 유형(예: 목록)이 될 수 있습니다. CER의 매개변수화된 기타 유형의 경우 매개변수 자체가 불변 오브젝트이어야 합니다.
- 각 CER 타임라인은 먼 과거나 먼 미래로 무한정 연장될 수 있습니다.1 즉, 각 CER 타임라인에는 날짜가 얼마나 먼 과거 또는 미래인지에 상관없이 임의의 날짜 값이 있습니다.
- CER 타임라인이 작성되면 타임라인은 간격의 콜렉션으로 나뉘며 각 간격은 타임라인의 기간에 해당하는 상수 값을 보유합니다. 연속 간격에는 항상 서로 다른2 값이 있습니다. 그렇지 않으면 하나의 간격으로 병합됩니다. 각 CER 타임라인은 먼 과거와 먼 미래로 무한정 연장됩니다.
이러한 특성으로 인해 다음과 같은 결과가 발생할 수 있습니다.
- 타임라인의 중간에 "시간적 공백"이 없어야 합니다. 타임라인의 모든 간격은 연속적입니다.
- 특정 날짜에 시작하는 타임라인이 없어야 합니다. 특정한 경우 합리적인 기본값이 선택되어야 합니다. 예를 들어, 고용으로 인해 발생하는 수입의 Timeline<Number>이 있는 경우 고용 시작 날짜 이전의 모든 날짜의 수입은 0이어야 합니다.
- 특정 날짜에 종료하는 타임라인이 없어야 합니다. 타임라인의 마지막 값은 "추후 통보 시까지"(즉, 임의의 먼 미래)를 적용합니다. 특정한 경우 합리적인 기본값을 선택해야 합니다. 예를 들어, 고용으로 인해 발생하는 수입의 Timeline<Number>가 있는 경우 고용 종료 날짜를 알면 고용 종료 후 모든 날짜의 수입이 0이어야 합니다. 반대로 고용 종료 날짜를 모르면 추후 통보될 때까지 최신 수입이 적용되어야 합니다.
- 날짜의 값이 없는 타임라인을 작성하려고 시도하면 실패합니다. 특히 각 타임라인에는 시작 날짜를 null로 표시하여 시작 시간부터 적용되는 값이 있어야 합니다.
- 각 타임라인에는 한정된 수의 값 변경사항이 포함될 수 있습니다. 임의의 횟수만큼 변경되는 값을 나타내는 타임라인의 제한사항을 표시합니다. 예를 들어, 개인의 나이를 표시하는 Timeline<Number>가 있습니다. 이 값은 개인의 첫 번째 생일까지는 0이고 개인의 두 번째 생일까지는 1과 같은 식으로 표시됩니다. 여전히 생존해 있는 개인의 경우 앞으로 맞을 생일 횟수를 예상할 수 없으므로 실제적인 제한(예: 200번)을 두어야 합니다. 실제로 이 제한사항으로 인해 장애가 발생하지 않아야 합니다.