Search in sources :

Example 1 with SearchTerm

use of jakarta.mail.search.SearchTerm in project exist by eXist-db.

the class MessageListFunctions method parseSubjectTerm.

private SearchTerm parseSubjectTerm(Node terms) throws XPathException {
    SearchTerm st = null;
    String pattern = ((Element) terms).getAttribute("pattern");
    if (pattern != null && !pattern.isEmpty()) {
        st = new SubjectTerm(pattern);
    } else {
        throw (new XPathException(this, "Pattern attribute must be specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    return (st);
}
Also used : XPathException(org.exist.xquery.XPathException) Element(org.w3c.dom.Element) SearchTerm(jakarta.mail.search.SearchTerm) SubjectTerm(jakarta.mail.search.SubjectTerm)

Example 2 with SearchTerm

use of jakarta.mail.search.SearchTerm in project exist by eXist-db.

the class MessageListFunctions method parseBodyTerm.

private SearchTerm parseBodyTerm(Node terms) throws XPathException {
    SearchTerm st = null;
    String pattern = ((Element) terms).getAttribute("pattern");
    if (pattern != null && !pattern.isEmpty()) {
        st = new BodyTerm(pattern);
    } else {
        throw (new XPathException(this, "Pattern attribute must be specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    return (st);
}
Also used : XPathException(org.exist.xquery.XPathException) Element(org.w3c.dom.Element) BodyTerm(jakarta.mail.search.BodyTerm) SearchTerm(jakarta.mail.search.SearchTerm)

Example 3 with SearchTerm

use of jakarta.mail.search.SearchTerm in project exist by eXist-db.

the class MessageListFunctions method parseSentDateTerm.

private SearchTerm parseSentDateTerm(Node terms) throws XPathException {
    SearchTerm st = null;
    String value = ((Element) terms).getAttribute("date");
    String format = ((Element) terms).getAttribute("format");
    if (StringUtils.isEmpty(value)) {
        throw (new XPathException(this, "value not specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    if (StringUtils.isEmpty(format)) {
        throw (new XPathException(this, "format not specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    int cp = parseComparisonAttribute(terms);
    try {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        Date date = sdf.parse(value);
        st = new SentDateTerm(cp, date);
    } catch (ParseException pe) {
        throw (new XPathException(this, "Cannot parse date value: " + value + ", using format: " + format + ", for term with type: " + ((Element) terms).getAttribute("type")));
    }
    return (st);
}
Also used : XPathException(org.exist.xquery.XPathException) Element(org.w3c.dom.Element) SentDateTerm(jakarta.mail.search.SentDateTerm) ParseException(java.text.ParseException) SearchTerm(jakarta.mail.search.SearchTerm) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date)

Example 4 with SearchTerm

use of jakarta.mail.search.SearchTerm in project exist by eXist-db.

the class MessageListFunctions method parseFromTerm.

private SearchTerm parseFromTerm(Node terms) throws XPathException {
    SearchTerm st = null;
    String pattern = ((Element) terms).getAttribute("pattern");
    if (pattern != null && !pattern.isEmpty()) {
        st = new FromStringTerm(pattern);
    } else {
        throw (new XPathException(this, "Pattern attribute must be specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    return (st);
}
Also used : FromStringTerm(jakarta.mail.search.FromStringTerm) XPathException(org.exist.xquery.XPathException) Element(org.w3c.dom.Element) SearchTerm(jakarta.mail.search.SearchTerm)

Example 5 with SearchTerm

use of jakarta.mail.search.SearchTerm in project exist by eXist-db.

the class MessageListFunctions method parseRecipientTerm.

private SearchTerm parseRecipientTerm(Node terms) throws XPathException {
    SearchTerm st = null;
    String pattern = ((Element) terms).getAttribute("pattern");
    String type = ((Element) terms).getAttribute("recipientType");
    if (StringUtils.isEmpty(type)) {
        throw (new XPathException(this, "recipientType not specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    if (pattern != null && !pattern.isEmpty()) {
        Message.RecipientType rtype = null;
        if (type.equalsIgnoreCase("to")) {
            rtype = Message.RecipientType.TO;
        } else if (type.equalsIgnoreCase("cc")) {
            rtype = Message.RecipientType.CC;
        } else if (type.equalsIgnoreCase("bcc")) {
            rtype = Message.RecipientType.BCC;
        } else {
            throw (new XPathException(this, "Invalid recipientType: " + type + ", for term with type: " + ((Element) terms).getAttribute("type")));
        }
        st = new RecipientStringTerm(rtype, pattern);
    } else {
        throw (new XPathException(this, "Pattern attribute must be specified for term with type: " + ((Element) terms).getAttribute("type")));
    }
    return (st);
}
Also used : Message(jakarta.mail.Message) RecipientStringTerm(jakarta.mail.search.RecipientStringTerm) XPathException(org.exist.xquery.XPathException) Element(org.w3c.dom.Element) SearchTerm(jakarta.mail.search.SearchTerm)

Aggregations

SearchTerm (jakarta.mail.search.SearchTerm)14 XPathException (org.exist.xquery.XPathException)10 Element (org.w3c.dom.Element)8 Flags (jakarta.mail.Flags)5 Folder (jakarta.mail.Folder)4 NotTerm (jakarta.mail.search.NotTerm)3 Field (java.lang.reflect.Field)3 Method (java.lang.reflect.Method)3 BeanFactory (org.springframework.beans.factory.BeanFactory)3 FlagTerm (jakarta.mail.search.FlagTerm)2 ParseException (java.text.ParseException)2 SimpleDateFormat (java.text.SimpleDateFormat)2 Date (java.util.Date)2 Test (org.junit.jupiter.api.Test)2 Node (org.w3c.dom.Node)2 NodeList (org.w3c.dom.NodeList)2 IMAPFolder (com.sun.mail.imap.IMAPFolder)1 Message (jakarta.mail.Message)1 MessagingException (jakarta.mail.MessagingException)1 AndTerm (jakarta.mail.search.AndTerm)1