class ZMSImpl implements Authorizer, KeyStore, ZMSHandler {

    void validateGroupMemberPrincipal(final String memberName, int principalType, final String userAuthorityFilter,
                                      final String caller) {

        // we do not support any type of wildcards in group members

        if (memberName.indexOf('*') != -1) {
            throw ZMSUtils.requestError("Principal " + memberName + " is not valid", caller);
        }

        switch (Principal.Type.getType(principalType)) {

            case USER:

                // for group members we always validate all members

                validateUserPrincipal(memberName, true, userAuthorityFilter, caller);
                break;

            case SERVICE:

                validateServicePrincipal(memberName, caller);
                break;

            default:

                throw ZMSUtils.requestError("Principal " + memberName + " is not valid", caller);
        }
    }

    public  ZMSImpl();

}