class CertificateSelector {

    public CertificateSelector<T> bySubject(final String subject) {
        Preconditions.checkArgument(
                StringUtils.isNotEmpty(subject),
                "subject cannot be null or empty."
        );

        setFieldValue(Certificate.SUBJECT_FIELD, subject);
        return this;
    }

    public  CertificateSelector(
            final CertificateManager certificateManager,
            final Class<T> certificateClass);
    public  CertificateSelector(
            final CertificateManager certificateManager,
            final Class<T> certificateClass, final boolean excludeArchivedCertificates);

}