from static method

Danger<Accesserable, CitrusSyntaxException> from(
  1. String identifier
)

Implementation

static Danger<Accesserable, CitrusSyntaxException> from(String identifier) {

    final log = Log(classLocation: Accesserable, functionLocation: 'from');

    if (identifier == Period.VALUE) return Success(Period(), log);

    final idResult = IdentifierableCollection.from(identifier);
    log.add(idResult);
    if (idResult is! Success<IdentifierableCollection, CitrusSyntaxException>) return Failure(idResult.asException, log);

    final identifierResult = Identifier.from(identifier);
    log.add(identifierResult);
    if (identifierResult is! Success<Identifier, CitrusSyntaxException>) return Failure(identifierResult.asException, log);
    final result = identifierResult.wrapped;

    switch (result) {
    case UserDefined(): return Success(result, log);
    case ChangeCaseKeyword(): return Success(result, log);
    case _: return Failure(CitrusSyntaxExceptionA(), log.monitor({
        'message': 'identifier is not Accesserable',
        'type': result.runtimeType,
        'value': result.source,
    }));
    }

}