From: Mike C. <com...@us...> - 2014-11-22 13:38:45
|
Update of /cvsroot/openjean/ojmail/uk/co/mullsoft/mail In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv430/uk/co/mullsoft/mail Modified Files: group.node item.node OJmailUtilities.java category.node AttributeValues.java Removed Files: MailboxComparator.java ArrivalDateComparator.java MailConstants.java Log Message: update 22/1//2014 --- ArrivalDateComparator.java DELETED --- Index: category.node =================================================================== RCS file: /cvsroot/openjean/ojmail/uk/co/mullsoft/mail/category.node,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** category.node 25 Sep 2011 16:55:52 -0000 1.2 --- category.node 22 Nov 2014 13:38:42 -0000 1.3 *************** *** 2,6 **** jeanid="-1" name="<unknown>" ! namespace="mail" type="category" xmldbSave="1239816557859"> --- 2,6 ---- jeanid="-1" name="<unknown>" ! catalog="mail" type="category" xmldbSave="1239816557859"> *************** *** 19,23 **** required="false" system="false" ! type="enumeration(hasunread|hasnounread)" visible="false">hasunread</openjean:attribute> </openjean:attributeSet> --- 19,23 ---- required="false" system="false" ! type="enumeration(hasunread|hasread|empty)" visible="false">hasunread</openjean:attribute> </openjean:attributeSet> Index: item.node =================================================================== RCS file: /cvsroot/openjean/ojmail/uk/co/mullsoft/mail/item.node,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** item.node 23 Dec 2012 13:51:34 -0000 1.4 --- item.node 22 Nov 2014 13:38:42 -0000 1.5 *************** *** 1,4 **** <openjean:node xmlns:openjean="http://www.mullsoft.co.uk/openjean" jeanid="-3" name="<unknown>" ! namespace="mail" type="item" xmldbSave="1239816558062"> --- 1,4 ---- <openjean:node xmlns:openjean="http://www.mullsoft.co.uk/openjean" jeanid="-3" name="<unknown>" ! catalog="mail" type="item" xmldbSave="1239816558062"> *************** *** 116,120 **** required="false" system="false" ! type="enumeration(unread|read|deleted)" visible="true">unread</openjean:attribute> <openjean:attribute name="arrivedAt" ordinal="5" persistence="persistent" prompt="Arrived at:" --- 116,120 ---- required="false" system="false" ! type="enumeration(unread|read)" visible="true">unread</openjean:attribute> <openjean:attribute name="arrivedAt" ordinal="5" persistence="persistent" prompt="Arrived at:" --- MailConstants.java DELETED --- Index: group.node =================================================================== RCS file: /cvsroot/openjean/ojmail/uk/co/mullsoft/mail/group.node,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** group.node 5 Aug 2012 11:52:48 -0000 1.3 --- group.node 22 Nov 2014 13:38:42 -0000 1.4 *************** *** 1,4 **** <openjean:node xmlns:openjean="http://www.mullsoft.co.uk/openjean" jeanid="-2" name="<unknown>" ! namespace="mail" type="group" xmldbSave="1239816557968"> --- 1,4 ---- <openjean:node xmlns:openjean="http://www.mullsoft.co.uk/openjean" jeanid="-2" name="<unknown>" ! catalog="mail" type="group" xmldbSave="1239816557968"> Index: AttributeValues.java =================================================================== RCS file: /cvsroot/openjean/ojmail/uk/co/mullsoft/mail/AttributeValues.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** AttributeValues.java 2 Jan 2014 13:23:53 -0000 1.6 --- AttributeValues.java 22 Nov 2014 13:38:43 -0000 1.7 *************** *** 29,42 **** import java.util.Vector; ! import uk.co.mullsoft.components.base.ObjectWithNameAndValueAndTags; public class AttributeValues { ! public final ObjectWithNameAndValueAndTags[] attributeValues; public final Vector<String> headerVector; public final String description; ! public AttributeValues(ObjectWithNameAndValueAndTags[] attributeValues, Vector<String> headerVector, String description) { this.attributeValues = attributeValues; --- 29,42 ---- import java.util.Vector; ! import uk.co.mullsoft.components.base.OJObject; public class AttributeValues { ! public final OJObject[] attributeValues; public final Vector<String> headerVector; public final String description; ! public AttributeValues(OJObject[] attributeValues, Vector<String> headerVector, String description) { this.attributeValues = attributeValues; Index: OJmailUtilities.java =================================================================== RCS file: /cvsroot/openjean/ojmail/uk/co/mullsoft/mail/OJmailUtilities.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** OJmailUtilities.java 1 May 2014 20:48:03 -0000 1.31 --- OJmailUtilities.java 22 Nov 2014 13:38:42 -0000 1.32 *************** *** 47,51 **** import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; ! import javax.mail.internet.MimeUtility; import uk.co.mullsoft.components.ArrayUtilities; --- 47,52 ---- import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; ! ! import org.w3c.dom.Document; import uk.co.mullsoft.components.ArrayUtilities; *************** *** 59,71 **** import uk.co.mullsoft.components.StringUtilities; import uk.co.mullsoft.components.ThreadManager; - import uk.co.mullsoft.components.User; import uk.co.mullsoft.components.Utilities; import uk.co.mullsoft.components.attributes.ParameterCollection; import uk.co.mullsoft.components.attributes.ParameterType; ! import uk.co.mullsoft.components.attributes.Attribute; import uk.co.mullsoft.components.base.ColorTable; ! import uk.co.mullsoft.components.base.ObjectWithNameAndValueAndTags; import uk.co.mullsoft.components.base.StringChecker; import uk.co.mullsoft.components.base.TickedLong; --- 60,71 ---- import uk.co.mullsoft.components.StringUtilities; import uk.co.mullsoft.components.ThreadManager; import uk.co.mullsoft.components.Utilities; import uk.co.mullsoft.components.attributes.ParameterCollection; import uk.co.mullsoft.components.attributes.ParameterType; ! import uk.co.mullsoft.components.attributes.SwingAttribute; import uk.co.mullsoft.components.base.ColorTable; ! import uk.co.mullsoft.components.base.OJObject; import uk.co.mullsoft.components.base.StringChecker; import uk.co.mullsoft.components.base.TickedLong; *************** *** 82,85 **** --- 82,87 ---- import uk.co.mullsoft.components.mail.FileMailLoader; import uk.co.mullsoft.components.mail.FileMailSaver; + import uk.co.mullsoft.components.mail.HeaderDetail; + import uk.co.mullsoft.components.mail.MailConstants; import uk.co.mullsoft.components.mail.MailFilter; import uk.co.mullsoft.components.mail.FilterResult; *************** *** 107,112 **** --- 109,117 ---- import uk.co.mullsoft.components.xml.HTMLUtilities; import uk.co.mullsoft.components.xml.ListHTMLDocument; + import uk.co.mullsoft.components.xml.XMLUtilities; import uk.co.mullsoft.components.xml.catalog.CatalogProperties; + import uk.co.mullsoft.components.xml.database.BLOB; import uk.co.mullsoft.components.xml.database.XMLDatabaseKey; + import uk.co.mullsoft.components.xml.database.XMLDbUtilities; import uk.co.mullsoft.ojclient.OJApplicationUtilities; *************** *** 154,159 **** private static final String SAVEATTACH = "Save Attachments"; - public static final String KEYSTART = "ojdb://mail/data/inbox/"; - private static final String[] LISTSETTINGPARAMETERNAMES = { --- 159,162 ---- *************** *** 171,193 **** private static final int ADDSPAMTOBLACK = 2; - private static void setUpTranslator() - { - MailProcessorUtilities.setTranslate(MailProcessorUtilities.REPLYTO, MailConstants.REPLYTOATTRIBUTE); - MailProcessorUtilities.setTranslate(MailProcessorUtilities.CONTENTS, MailConstants.CONTENTSATTRIBUTE); - MailProcessorUtilities.setTranslate(MailProcessorUtilities.TEXT, MailConstants.TEXTATTRIBUTE); - MailProcessorUtilities.setTranslate(MailProcessorUtilities.CONTENTIDS, MailConstants.CONTENTIDSATTRIBUTE); - MailProcessorUtilities.setTranslate(MailProcessorUtilities.ATTACHMENTS, MailConstants.ATTACHMENTSATTRIBUTE); - for (int n = 0; n < MailProcessorUtilities.headerNames.length; n++) - { - MailProcessorUtilities.setTranslate(MailProcessorUtilities.headerNames[n], MailConstants.attributeNames[n]); - } - for (int n = 0; n < MailProcessorUtilities.otherHeaderNames.length; n++) - { - MailProcessorUtilities.setTranslate(MailProcessorUtilities.otherHeaderNames[n], - MailConstants.otherAttributeNames[n]); - } - MailProcessorUtilities.setTranslate(MailProcessorUtilities.OJARRIVALHEADER, MailConstants.ARRIVEDATATTRIBUTE); - } - private Persona currentPersona = null; private boolean updating = false; --- 174,177 ---- *************** *** 198,203 **** protected Color[] defaultCategoryStatusColors = null; - private Hashtable<String, ParameterType> attributeTypeTable = new Hashtable<String, ParameterType>(); - protected long system = Constants.NOSUCHENTITY; protected long inbox = Constants.NOSUCHENTITY; --- 182,185 ---- *************** *** 305,312 **** { PersonaFactory.getPersonaFactory(username).loadPersonae(this); - for (int n = 0; n < MailConstants.attributeNames.length; n++) - { - attributeTypeTable.put(MailConstants.attributeNames[n], MailConstants.attributeTypes[n]); - } defaultStatusColors = new Color[MailConstants.statusNames.length]; for (int n = 0; n < defaultStatusColors.length; n++) --- 287,290 ---- *************** *** 324,350 **** defaultCategoryStatusColors[n] = new Color(204, 204, 204, 255); } ! setUpTranslator(); api.setDefaultDisplayColor(EntityType.ITEM, Constants.STATUSUNREAD); setupRules(); currentPersona = PersonaFactory.getPersonaFactory(username).getCurrentPersona(); ! ObjectWithNameAndValueAndTags nv = new ObjectWithNameAndValueAndTags(MailConstants.CATEGORYSTATUSATTRIBUTE, Constants.STATUSALLREAD); ! ObjectWithNameAndValueAndTags[] nva = new ObjectWithNameAndValueAndTags[] { nv }; system = getOrCreateChild(0, EntityType.CATEGORY, MailConstants.SYSTEM, nva, true); inbox = getOrCreateChild(system, EntityType.CATEGORY, MailConstants.INBOX, nva, true); archive = getOrCreateChild(system, EntityType.CATEGORY, MailConstants.ARCHIVE, nva, true); ! nv = new ObjectWithNameAndValueAndTags(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY); ! nva = new ObjectWithNameAndValueAndTags[] { nv }; setTrash(getOrCreateChild(system, EntityType.GROUP, MailConstants.TRASH, nva, true)); spam = getOrCreateChild(system, EntityType.GROUP, MailConstants.SPAM, nva, true); draft = getOrCreateChild(system, EntityType.GROUP, MailConstants.DRAFT, nva, true); outbox = getOrCreateChild(system, EntityType.GROUP, MailConstants.OUTBOX, nva, true); sent = getOrCreateChild(system, EntityType.GROUP, MailConstants.SENT, nva, true); standardreplies = getOrCreateChild(system, EntityType.GROUP, MailConstants.STANDARDREPLIES, nva, true, false); addEmptyTrashListener(new MailEmptyTrashListener()); addStandardMenuItems(); --- 302,337 ---- defaultCategoryStatusColors[n] = new Color(204, 204, 204, 255); } ! MailProcessorUtilities.setUpTranslator(); api.setDefaultDisplayColor(EntityType.ITEM, Constants.STATUSUNREAD); setupRules(); currentPersona = PersonaFactory.getPersonaFactory(username).getCurrentPersona(); ! OJObject nv = new OJObject(MailConstants.CATEGORYSTATUSATTRIBUTE, Constants.STATUSALLREAD); ! OJObject[] nva = new OJObject[] { nv }; system = getOrCreateChild(0, EntityType.CATEGORY, MailConstants.SYSTEM, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got system", system); inbox = getOrCreateChild(system, EntityType.CATEGORY, MailConstants.INBOX, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got inbox", inbox); archive = getOrCreateChild(system, EntityType.CATEGORY, MailConstants.ARCHIVE, nva, true); ! Logger.getLogger().log(Logger.DEBUG, "got archive", archive); ! nv = new OJObject(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY); ! nva = new OJObject[] { nv }; setTrash(getOrCreateChild(system, EntityType.GROUP, MailConstants.TRASH, nva, true)); + Logger.getLogger().log(Logger.DEBUG, "got trash", this.getTrash()); spam = getOrCreateChild(system, EntityType.GROUP, MailConstants.SPAM, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got spam", spam); draft = getOrCreateChild(system, EntityType.GROUP, MailConstants.DRAFT, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got draft", draft); outbox = getOrCreateChild(system, EntityType.GROUP, MailConstants.OUTBOX, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got outbox", outbox); sent = getOrCreateChild(system, EntityType.GROUP, MailConstants.SENT, nva, true); + Logger.getLogger().log(Logger.DEBUG, "got sent", sent); standardreplies = getOrCreateChild(system, EntityType.GROUP, MailConstants.STANDARDREPLIES, nva, true, false); + Logger.getLogger().log(Logger.DEBUG, "got standardreplies", standardreplies); addEmptyTrashListener(new MailEmptyTrashListener()); addStandardMenuItems(); *************** *** 652,656 **** { Logger.getLogger().log(catalog, Logger.DEBUG, "notSpam: adding to white list"); ! MailList white = MailListManager.getWhiteList(); Vector<String> emailAddresses = new Vector<String>(); for (int n = 0; n < paths.length; n++) --- 639,643 ---- { Logger.getLogger().log(catalog, Logger.DEBUG, "notSpam: adding to white list"); ! MailList white = MailListManager.instance(username).getWhiteList(); Vector<String> emailAddresses = new Vector<String>(); for (int n = 0; n < paths.length; n++) *************** *** 783,787 **** if (blacklistall) { ! ThreadManager.invokeLater(new AddToListRunnable(mboxChildren, MailListManager.getBlackList())); } } --- 770,774 ---- if (blacklistall) { ! ThreadManager.invokeLater(new AddToListRunnable(mboxChildren, MailListManager.instance(username).getBlackList())); } } *************** *** 940,948 **** HeaderDetail hd = new HeaderDetail(new MessageMailLoader(newMessage)); long sm = getOrCreateChild(outbox, EntityType.ITEM, itemName, ! hd.attributes.values().toArray(new ObjectWithNameAndValueAndTags[hd.attributes.size()])); if (sm > 0) { this.link(sent, sm); ! DBMailSaver saver = new DBMailSaver(MailProcessorUtilities.getOutboxKey(new Date())); saver.save(String.valueOf(sm), newMessage); sendMail(new long[] --- 927,935 ---- HeaderDetail hd = new HeaderDetail(new MessageMailLoader(newMessage)); long sm = getOrCreateChild(outbox, EntityType.ITEM, itemName, ! hd.attributes.values().toArray(new OJObject[hd.attributes.size()])); if (sm > 0) { this.link(sent, sm); ! DBMailSaver saver = new DBMailSaver(username, MailProcessorUtilities.getOutboxKey(new Date())); saver.save(String.valueOf(sm), newMessage); sendMail(new long[] *************** *** 996,1000 **** try { ! MailList ml = MailListManager.getWhiteList(); Vector<String> emailAddress = new Vector<String>(); for (int n = 0; n < ids.length; n++) --- 983,987 ---- try { ! MailList ml = MailListManager.instance(username).getWhiteList(); Vector<String> emailAddress = new Vector<String>(); for (int n = 0; n < ids.length; n++) *************** *** 1028,1032 **** try { ! MailList ml = MailListManager.getBlackList(); Vector<String> emailAddress = new Vector<String>(); for (int n = 0; n < ids.length; n++) --- 1015,1019 ---- try { ! MailList ml = MailListManager.instance(username).getBlackList(); Vector<String> emailAddress = new Vector<String>(); for (int n = 0; n < ids.length; n++) *************** *** 1049,1056 **** public void setListParameters(String catalog, SelectionPath[] paths, String arg) { ! ObjectWithNameAndValueAndTags[] listSettings = new ObjectWithNameAndValueAndTags[LISTSETTINGPROMPTS.length]; for (int n = 0; n < LISTSETTINGPROMPTS.length; n++) { ! listSettings[n] = new ObjectWithNameAndValueAndTags(LISTSETTINGPROMPTS[n], listParameters[n]); } InputPanel ip = AbstractInputPanel.getBooleanPanel(listSettings, 0); --- 1036,1043 ---- public void setListParameters(String catalog, SelectionPath[] paths, String arg) { ! OJObject[] listSettings = new OJObject[LISTSETTINGPROMPTS.length]; for (int n = 0; n < LISTSETTINGPROMPTS.length; n++) { ! listSettings[n] = new OJObject(LISTSETTINGPROMPTS[n], listParameters[n]); } InputPanel ip = AbstractInputPanel.getBooleanPanel(listSettings, 0); *************** *** 1078,1088 **** else { ! Attribute[] attachments = null; if (attachmentNames.length == 1) { ! Attribute nv = getAttachment(attachmentNames[0], ids[0]); if (nv != null) { ! attachments = new Attribute[] { nv --- 1065,1075 ---- else { ! SwingAttribute[] attachments = null; if (attachmentNames.length == 1) { ! SwingAttribute nv = getAttachment(attachmentNames[0], ids[0]); if (nv != null) { ! attachments = new SwingAttribute[] { nv *************** *** 1096,1105 **** if (input != null) { ! Vector<Attribute> v = new Vector<Attribute>(); for (int n = 0; n < input.length; n++) { if ((Boolean) input[n]) { ! Attribute nv = getAttachment(attachmentNames[n], ids[0]); if (nv != null) { --- 1083,1092 ---- if (input != null) { ! Vector<SwingAttribute> v = new Vector<SwingAttribute>(); for (int n = 0; n < input.length; n++) { if ((Boolean) input[n]) { ! SwingAttribute nv = getAttachment(attachmentNames[n], ids[0]); if (nv != null) { *************** *** 1110,1114 **** if (v.size() > 0) { ! attachments = v.toArray(new Attribute[v.size()]); } } --- 1097,1101 ---- if (v.size() > 0) { ! attachments = v.toArray(new SwingAttribute[v.size()]); } } *************** *** 1125,1135 **** { File f = new File(folder, attachments[n].getName()); ! ObjectWithNameAndValueAndTags nv = (ObjectWithNameAndValueAndTags) attachments[n].getValue(); if (nv != null) { ! byte[] bytes = (byte[]) nv.getValue(); ! Logger.getLogger().log(Logger.DEBUG, "saving attachment to", f, "number of bytes", ! bytes == null ? -1 : bytes.length); ! FileUtilities.saveBytes(bytes, f); } } --- 1112,1149 ---- { File f = new File(folder, attachments[n].getName()); ! OJObject nv = (OJObject) attachments[n].getValue(); if (nv != null) { ! Object obj = nv.getValue(); ! if (obj instanceof XMLDatabaseKey) ! { ! XMLDatabaseKey key = (XMLDatabaseKey)obj; ! if (key.isBLOB()) ! { ! BLOB blob = XMLDbUtilities.loadBLOB(username, key); ! obj = blob == null?null:blob.getOriginalBytes(); ! } ! else ! { ! Document doc = XMLDbUtilities.loadXMLDocument(username, key); ! obj = doc; ! } ! } ! if (obj == null) ! { ! Logger.getLogger().log(Logger.ERROR, "no attachment found", attachments[n].getName()); ! } ! else if (obj instanceof byte[]) ! { ! byte[] bytes = (byte[]) obj; ! Logger.getLogger().log(Logger.DEBUG, "saving attachment to", f, "number of bytes", ! bytes == null ? -1 : bytes.length); ! FileUtilities.saveBytes(bytes, f); ! } ! else if (obj instanceof Document) ! { ! Document doc = (Document) obj; ! XMLUtilities.saveDocument(f, doc); ! } } } *************** *** 1144,1148 **** if (arg != null) { ! MailListManager.editList(arg); } } --- 1158,1162 ---- if (arg != null) { ! MailListManager.instance(username).editList(arg); } } *************** *** 1221,1226 **** if (archiveName != null) { ! ObjectWithNameAndValueAndTags nv = new ObjectWithNameAndValueAndTags(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSALLREAD); ! ObjectWithNameAndValueAndTags[] nva = new ObjectWithNameAndValueAndTags[] { nv --- 1235,1240 ---- if (archiveName != null) { ! OJObject nv = new OJObject(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSALLREAD); ! OJObject[] nva = new OJObject[] { nv *************** *** 1245,1250 **** private void doCollapse(Hashtable<String, Vector<Long>> iboxtable, String name, long dest) { ! ObjectWithNameAndValueAndTags nv = new ObjectWithNameAndValueAndTags(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY); ! ObjectWithNameAndValueAndTags[] nva = new ObjectWithNameAndValueAndTags[] { nv --- 1259,1264 ---- private void doCollapse(Hashtable<String, Vector<Long>> iboxtable, String name, long dest) { ! OJObject nv = new OJObject(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY); ! OJObject[] nva = new OJObject[] { nv *************** *** 1633,1639 **** Date date = new Date(); String mailboxName = MailConstants.ARRIVED + DateUtilities.dateFormat1.format(date); ! ObjectWithNameAndValueAndTags[] nv = new ObjectWithNameAndValueAndTags[] { ! new ObjectWithNameAndValueAndTags(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY) }; long mailbox = getOrCreateChild(inbox, EntityType.GROUP, mailboxName, nv, true); --- 1647,1653 ---- Date date = new Date(); String mailboxName = MailConstants.ARRIVED + DateUtilities.dateFormat1.format(date); ! OJObject[] nv = new OJObject[] { ! new OJObject(MailConstants.GROUPSTATUSATTRIBUTE, Constants.STATUSEMPTY) }; long mailbox = getOrCreateChild(inbox, EntityType.GROUP, mailboxName, nv, true); *************** *** 1642,1646 **** @Override ! public boolean[] actionRequired(String catalog, MonitorType type, ObjectWithNameAndValueAndTags[] monitorObjects) { Logger.getLogger().log("mail", Logger.DEBUG, "monitor actionRequired", monitorObjects); --- 1656,1660 ---- @Override ! public boolean[] actionRequired(String catalog, MonitorType type, OJObject[] monitorObjects) { Logger.getLogger().log("mail", Logger.DEBUG, "monitor actionRequired", monitorObjects); *************** *** 1691,1698 **** // override in subclasses that use monitors ! protected void addMonitorObject(ObjectWithNameAndValueAndTags monitorObject) { int nmins = (Integer) ParameterCollection.getParameterValue(username, catalog, "collectEvery", 15); ! addMonitorObjects(new ObjectWithNameAndValueAndTags[] { monitorObject --- 1705,1712 ---- // override in subclasses that use monitors ! protected void addMonitorObject(OJObject monitorObject) { int nmins = (Integer) ParameterCollection.getParameterValue(username, catalog, "collectEvery", 15); ! addMonitorObjects(new OJObject[] { monitorObject *************** *** 1708,1712 **** { String ename = getEntityName(newMessage); ! long id = api.createEntity(draft, EntityType.ITEM, ename, (ObjectWithNameAndValueAndTags[]) null); return id; } --- 1722,1726 ---- { String ename = getEntityName(newMessage); ! long id = api.createEntity(draft, EntityType.ITEM, ename, (OJObject[]) null); return id; } *************** *** 1727,1731 **** String entityName = getEntityName(newMessage); ret = getOrCreateChild(outbox, EntityType.ITEM, entityName, ! hd.attributes.values().toArray(new ObjectWithNameAndValueAndTags[hd.attributes.size()])); this.link(sent, ret); } --- 1741,1745 ---- String entityName = getEntityName(newMessage); ret = getOrCreateChild(outbox, EntityType.ITEM, entityName, ! hd.attributes.values().toArray(new OJObject[hd.attributes.size()])); this.link(sent, ret); } *************** *** 1841,1847 **** } ! protected Attribute getAttachment(String name, long id) { ! Attribute ret = null; XMLDatabaseKey inboxkey = getInboxKey(id); if (inboxkey != null) --- 1855,1861 ---- } ! protected SwingAttribute getAttachment(String name, long id) { ! SwingAttribute ret = null; XMLDatabaseKey inboxkey = getInboxKey(id); if (inboxkey != null) *************** *** 1930,1934 **** } } ! api.setAttributeValue(lc.toArray(), new ObjectWithNameAndValueAndTags(MailConstants.STATUSATTRIBUTE, Constants.STATUSREAD)); } --- 1944,1948 ---- } } ! api.setAttributeValue(lc.toArray(), new OJObject(MailConstants.STATUSATTRIBUTE, Constants.STATUSREAD)); } *************** *** 1938,2036 **** } - private class HeaderDetail - { - public final Hashtable<String, ObjectWithNameAndValueAndTags> attributes; - public final Hashtable<String, String> ojInfoTable; - public final String subject; - public final boolean ok; - - public HeaderDetail(MailLoader loader) - { - attributes = new Hashtable<String, ObjectWithNameAndValueAndTags>(); - ojInfoTable = new Hashtable<String, String>(); - String subj = MailConstants.NOSUBJECT; - Hashtable<String, String> headers = loader.loadHeaders(); - boolean isok = false; - for (String header : headers.keySet()) - { - if (header.startsWith("X-OJ")) - { - ojInfoTable.put(header, headers.get(header)); - Logger.getLogger().log(Logger.DEBUG, "added OJ header", header, "to table, value", - ojInfoTable.get(header)); - isok = true; - } - else - { - String attname = MailProcessorUtilities.translate(header); - if (attname != null) - { - String hdr = headers.get(header).trim(); - if (attname.equals(MailConstants.SUBJECTATTRIBUTE)) - { - try - { - subj = MimeUtility.decodeText(hdr); - } - catch (Exception e) - { - subj = hdr; - } - isok = true; - } - ParameterType ptype = attributeTypeTable.get(attname); - if (ptype != null) - { - attributes.put(attname, new ObjectWithNameAndValueAndTags(attname, ParameterType.getValueFromString(User.getCurrentUser(), ptype, hdr))); - } - } - } - } - ok = isok; - String str = MailProcessorUtilities.translate(MailProcessorUtilities.CONTENTS); - attributes.put(str, new ObjectWithNameAndValueAndTags(str, MailProcessorUtilities.getContents(loader))); - str = MailProcessorUtilities.translate(MailProcessorUtilities.TEXT); - attributes.put(str, new ObjectWithNameAndValueAndTags(str, loader.loadContentsText())); - Vector<Attribute> attachments = loader.loadAttachments(); - String[] contentIds = MailProcessorUtilities.getContentIds(attachments); - if (contentIds.length > 0) - { - String ci = StringUtilities.toString(contentIds, "|"); - str = MailProcessorUtilities.translate(MailProcessorUtilities.CONTENTIDS); - attributes.put(str, new ObjectWithNameAndValueAndTags(str, ci)); - } - str = MailProcessorUtilities.translate(MailProcessorUtilities.ATTACHMENTS); - attributes.put(str, new ObjectWithNameAndValueAndTags(str, attachments.toArray(new Attribute[attachments.size()]))); - String status = Constants.STATUSUNREAD; - String marstr = ojInfoTable.get(MailProcessorUtilities.MARKASREADHEADER); - if (marstr != null) - { - Boolean mar = new Boolean(marstr); - if (mar) - { - status = Constants.STATUSREAD; - } - } - attributes.put(MailConstants.STATUSATTRIBUTE, new ObjectWithNameAndValueAndTags(MailConstants.STATUSATTRIBUTE, status)); - String personaName = ojInfoTable.get(MailProcessorUtilities.OJPERSONAHEADER); - if (personaName != null) - { - attributes.put(MailConstants.PERSONAATTRIBUTE, new ObjectWithNameAndValueAndTags(MailConstants.PERSONAATTRIBUTE, personaName)); - } - String uid = ojInfoTable.get(MailProcessorUtilities.OJIDHEADER); - attributes.put(MailConstants.UIDATTRIBUTE, new ObjectWithNameAndValueAndTags(MailConstants.UIDATTRIBUTE, uid)); - if (loader instanceof DBMailLoader) - { - String kstr = ((DBMailLoader) loader).key == null ? null : ((DBMailLoader) loader).key.toString(); - if ((kstr != null) && kstr.startsWith(KEYSTART)) - { - attributes.put(MailConstants.KEYATTRIBUTE, new ObjectWithNameAndValueAndTags(MailConstants.KEYATTRIBUTE, kstr)); - } - } - subject = subj; - attributes.put(MailConstants.ARRIVEDATATTRIBUTE, new ObjectWithNameAndValueAndTags(MailConstants.ARRIVEDATATTRIBUTE, new Date())); - } - } - private class NewMailRunnable implements Runnable { --- 1952,1955 ---- *************** *** 2068,2072 **** { XMLDatabaseKey dest = destdir.subKey(msgdirs[n].getName()); ! DBMailSaver saver = new DBMailSaver(dest); FileMailLoader loader = new FileMailLoader(username, msgdirs[n]); MailProcessorUtilities.copyMail(username, loader, saver); --- 1987,1991 ---- { XMLDatabaseKey dest = destdir.subKey(msgdirs[n].getName()); ! DBMailSaver saver = new DBMailSaver(username, dest); FileMailLoader loader = new FileMailLoader(username, msgdirs[n]); MailProcessorUtilities.copyMail(username, loader, saver); *************** *** 2169,2173 **** } EntityCreationSpecification espec = new EntityCreationSpecification(hd.subject, mbox, ! EntityType.ITEM, hd.attributes.values().toArray(new ObjectWithNameAndValueAndTags[hd.attributes.size()])); if (additionalParents.length > 0) { --- 2088,2092 ---- } EntityCreationSpecification espec = new EntityCreationSpecification(hd.subject, mbox, ! EntityType.ITEM, hd.attributes.values().toArray(new OJObject[hd.attributes.size()])); if (additionalParents.length > 0) { *************** *** 2238,2242 **** XMLDatabaseKey mailkey = null; String keystring = api.getAttributeValueAsString(trashItems[n], MailConstants.KEYATTRIBUTE); ! if ((keystring != null) && keystring.startsWith(KEYSTART)) { mailkey = new XMLDatabaseKey(keystring); --- 2157,2161 ---- XMLDatabaseKey mailkey = null; String keystring = api.getAttributeValueAsString(trashItems[n], MailConstants.KEYATTRIBUTE); ! if ((keystring != null) && keystring.startsWith(MailConstants.KEYSTART)) { mailkey = new XMLDatabaseKey(keystring); *************** *** 2297,2301 **** if ((items != null) && (items.length > 0) && (status != null)) { ! api.setAttributeValue(items, new ObjectWithNameAndValueAndTags(MailConstants.STATUSATTRIBUTE, status)); } } --- 2216,2220 ---- if ((items != null) && (items.length > 0) && (status != null)) { ! api.setAttributeValue(items, new OJObject(MailConstants.STATUSATTRIBUTE, status)); } } --- MailboxComparator.java DELETED --- |