Example #1
0
 /** Returns the value of the Content-Transfer-Encoding header field. */
 public String getEncoding() throws MessagingException {
   String encoding = getHeader(CONTENT_TRANSFER_ENCODING_NAME, null);
   if (encoding != null) {
     encoding = encoding.trim();
     if (encoding.equalsIgnoreCase("7bit")
         || encoding.equalsIgnoreCase("8bit")
         || encoding.equalsIgnoreCase("quoted-printable")
         || encoding.equalsIgnoreCase("base64")) {
       return encoding;
     }
     HeaderTokenizer ht = new HeaderTokenizer(encoding, HeaderTokenizer.MIME);
     for (boolean done = false; !done; ) {
       HeaderTokenizer.Token token = ht.next();
       switch (token.getType()) {
         case HeaderTokenizer.Token.EOF:
           done = true;
           break;
         case HeaderTokenizer.Token.ATOM:
           return token.getValue();
       }
     }
     return encoding;
   }
   return null;
 }
Example #2
0
  /**
   * Constructor that takes a Content-Type string. The String is parsed into its constituents:
   * primaryType, subType and parameters. A ParseException is thrown if the parse fails.
   *
   * @param s the Content-Type string.
   * @exception ParseException if the parse fails.
   */
  public ContentType(String s) throws ParseException {
    HeaderTokenizer h = new HeaderTokenizer(s, HeaderTokenizer.MIME);
    HeaderTokenizer.Token tk;

    // First "type" ..
    tk = h.next();
    if (tk.getType() != HeaderTokenizer.Token.ATOM) throw new ParseException();
    primaryType = tk.getValue();

    // The '/' separator ..
    tk = h.next();
    if ((char) tk.getType() != '/') throw new ParseException();

    // Then "subType" ..
    tk = h.next();
    if (tk.getType() != HeaderTokenizer.Token.ATOM) throw new ParseException();
    subType = tk.getValue();

    // Finally parameters ..
    String rem = h.getRemainder();
    if (rem != null) list = new ParameterList(rem);
  }
Example #3
0
 /**
  * Returns the languages specified in the Content-Language header of this part, as defined by RFC
  * 1766. This method returns <code>null</code> if this header is not available.
  */
 public String[] getContentLanguage() throws MessagingException {
   String header = getHeader(CONTENT_LANGUAGE_NAME, null);
   if (header != null) {
     HeaderTokenizer ht = new HeaderTokenizer(header, HeaderTokenizer.MIME);
     ArrayList acc = new ArrayList();
     for (boolean done = false; !done; ) {
       HeaderTokenizer.Token token = ht.next();
       switch (token.getType()) {
         case HeaderTokenizer.Token.EOF:
           done = true;
           break;
         case HeaderTokenizer.Token.ATOM:
           acc.add(token.getValue());
           break;
       }
     }
     if (acc.size() > 0) {
       String[] languages = new String[acc.size()];
       acc.toArray(languages);
       return languages;
     }
   }
   return null;
 }