class IdaAuthnRequestTranslator {

    public IdaAuthnRequestFromHub getIdaAuthnRequestFromHub(IdaAuthnRequestFromHubDto idaAuthnRequestFromHubDto, URI ssoUri, String hubEntityId) {
        List<AuthnContext> levelsOfAssurance = idaAuthnRequestFromHubDto.getLevelsOfAssurance();
        AuthnContextComparisonTypeEnumeration comparisonType;

        if (idaAuthnRequestFromHubDto.getUseExactComparisonType()) {
            comparisonType = EXACT;
        } else {
            comparisonType = MINIMUM;
            if (levelsOfAssurance.size() == 1) {
                levelsOfAssurance = Arrays.asList(levelsOfAssurance.get(0), levelsOfAssurance.get(0));
            }
        }

        return createRequestToSendFromHub(
                idaAuthnRequestFromHubDto.getId(),
                levelsOfAssurance,
                idaAuthnRequestFromHubDto.getForceAuthentication(),
                idaAuthnRequestFromHubDto.getSessionExpiryTimestamp(),
                ssoUri,
                comparisonType,
                hubEntityId);
    }

    @Inject public  IdaAuthnRequestTranslator();

}