code: @Override
      public OrderAnalyzerResult analyze() {
          setCurrentDate(null);
          setSeenEvent(null);
          final PersonAnalysisVisitor visitor = new PersonAnalysisVisitor();
          person.accept(visitor);
          for (final Attribute attribute  : visitor.getTrimmedAttributes()) {
              basicOrderCheck(attribute);
              if (isUnorderedEvent(attribute)) {
                  // We DO NOT pay attention to this event when
                  // doing logical order analysis.
                  continue;
              }
              birthCheck(attribute);
              deathCheck(attribute);
              setSeenEvent(attribute);
          }
          familyOrderAnalyzer.analyze();
          childrenOrderAnalyzer.analyze();
          return getResult();
      }
docs: {@inheritDoc}