public GenericHandler(Class<T> clazz) {
        BaliseData annotationData = clazz.getAnnotation(BaliseData.class);
        if (annotationData == null) {
            throw new ApiException("Pas d'annotation BaliseData trouvée pour la classe " + clazz);
        }
        baliseData = annotationData.value();
        try {
            constructor = clazz.getDeclaredConstructor();
        } catch (NoSuchMethodException exception) {
            throw new ApiException("Le constructeur n'a pas été trouvé", exception);
        }

        for (Method method : clazz.getDeclaredMethods()) {
            BaliseXml baliseXml = method.getAnnotation(BaliseXml.class);
            if (baliseXml != null) {
                if (mapBaliseMethod.containsKey(baliseXml.name())) {
                    throw new ApiException("Deux méthodes trouvées avec la même baliseXml");
                }
                mapBaliseMethod.put(baliseXml.name(), method);
                mapBaliseType.put(baliseXml.name(), baliseXml.type());
            }
        }
    }