1 package org.columba.mail.folder.headercache; 19 20 import java.awt.Color ; 21 import java.util.Date ; 22 23 import org.columba.mail.message.ColumbaHeader; 24 import org.columba.mail.message.IColumbaHeader; 25 import org.columba.ristretto.message.Address; 26 27 35 public class CachedHeaderfields { 36 37 public static final String [] INTERNAL_COMPRESSED_HEADERFIELDS = { 41 42 "columba.flags.seen", "columba.flags.recent", 44 "columba.flags.answered", "columba.flags.flagged", 45 "columba.flags.expunged", "columba.flags.draft", 46 "columba.attachment", 48 "columba.spam" }; 50 51 public static final String [] INTERNAL_HEADERFIELDS = { 54 55 "columba.priority", 57 "columba.from", 59 "columba.host", 61 "columba.date", 63 "columba.size", 65 "columba.subject", 67 "columba.color", 69 "columba.accountuid", 71 "columba.to", 73 "columba.cc" }; 75 76 public static final Class [] INTERNAL_HEADERFIELDS_TYPE = { Integer .class, 77 Address.class, String .class, Date .class, Integer .class, 78 String .class, Color .class, Integer .class, Address.class, 79 String .class }; 80 81 public static final String [] DEFAULT_HEADERFIELDS = { "Subject", "From", 83 "To", "Cc", "Date", "Message-ID", "In-Reply-To", "References", 84 "Content-Type" }; 85 86 public static final String [] POP3_HEADERFIELDS = { "Subject", "From", 87 "columba.date", "columba.size", 88 "columba.pop3uid", 90 "columba.alreadyfetched" }; 92 93 public static final Class [] POP3_HEADERFIELDS_TYPE = { String .class, 94 String .class, Date .class, Integer .class, String .class, 95 Boolean .class }; 96 97 100 private CachedHeaderfields() { 101 } 102 103 111 public static IColumbaHeader stripHeaders(IColumbaHeader h) { 112 IColumbaHeader strippedHeader = new ColumbaHeader(); 114 115 for (int i = 0; i < DEFAULT_HEADERFIELDS.length; i++) { 117 if (h.get(DEFAULT_HEADERFIELDS[i]) != null) { 118 119 strippedHeader.set(DEFAULT_HEADERFIELDS[i], h 120 .get(DEFAULT_HEADERFIELDS[i])); 121 } 122 } 123 124 for (int i = 0; i < INTERNAL_HEADERFIELDS.length; i++) { 125 if (h.get(INTERNAL_HEADERFIELDS[i]) != null) { 126 strippedHeader.set(INTERNAL_HEADERFIELDS[i], h 127 .get(INTERNAL_HEADERFIELDS[i])); 128 } 129 } 130 131 for (int i = 0; i < INTERNAL_COMPRESSED_HEADERFIELDS.length; i++) { 132 if (h.get(INTERNAL_COMPRESSED_HEADERFIELDS[i]) != null) { 133 strippedHeader.set(INTERNAL_COMPRESSED_HEADERFIELDS[i], h 134 .get(INTERNAL_COMPRESSED_HEADERFIELDS[i])); 135 } 136 } 137 138 return strippedHeader; 139 } 140 141 public static String [] getDefaultHeaderfields() { 142 String [] result = new String [DEFAULT_HEADERFIELDS.length]; 143 System.arraycopy(DEFAULT_HEADERFIELDS,0, result, 0, DEFAULT_HEADERFIELDS.length); 144 return result; 145 } 146 }; | Popular Tags |