Changeset 8d826ce


Ignore:
Timestamp:
Nov 22, 2013 11:18:41 AM (6 years ago)
Author:
str4d <str4d@…>
Branches:
master
Children:
3bc0be1c
Parents:
e853d9a
Message:

susimail:

  • Generics in Folder
  • for each
  • type arguments
Location:
apps/susimail/src/src/i2p/susi
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • apps/susimail/src/src/i2p/susi/util/Folder.java

    re853d9a r8d826ce  
    4242 * @author susi
    4343 */
    44 public class Folder {
     44public class Folder<O extends Object> {
    4545       
    4646        public static final String PAGESIZE = "pager.pagesize";
     
    5151
    5252        private int pages, pageSize, currentPage;
    53         private Object[] unsortedElements, elements;
    54         private Hashtable sorter;
     53        private O[] unsortedElements, elements;
     54        private Hashtable<String, Comparator<O>> sorter;
    5555        private boolean sortingDirection;
    56         Comparator currentSorter;
     56        Comparator<O> currentSorter;
    5757       
    5858        public Folder()
     
    6262                currentPage = 1;
    6363                unsortedElements = null;
    64                 sorter = new Hashtable();
     64                sorter = new Hashtable<String, Comparator<O>>();
    6565                sortingDirection = UP;
    6666                currentSorter = null;
     
    130130         * @return Copy of source.
    131131         */
    132         private Object[] copyArray( Object[] source )
     132        @SuppressWarnings("unchecked")
     133        private O[] copyArray( O[] source )
    133134        {
    134135                Object[] destination = new Object[source.length];
    135136                for( int i = 0; i < source.length; i++ )
    136137                        destination[i] = source[i];
    137                 return destination;
     138                return (O[])destination;
    138139        }
    139140        /**
     
    172173         * Set the array of objects the folder should manage.
    173174         *
    174          * @param elements Array of Objects.
    175          */
    176         public void setElements( Object[] elements )
     175         * @param elements Array of Os.
     176         */
     177        public void setElements( O[] elements )
    177178        {
    178179                this.unsortedElements = elements;
     
    188189         * @return Iterator containing the elements on the current page.
    189190         */
    190         public Iterator currentPageIterator()
    191         {
    192                 ArrayList list = new ArrayList();
     191        public Iterator<O> currentPageIterator()
     192        {
     193                ArrayList<O> list = new ArrayList<O>();
    193194                if( elements != null ) {
    194195                        int pageSize = getPageSize();
     
    250251         * @param sorter a Comparator to sort the Array given by @link setElements()
    251252         */
    252         public void addSorter( String id, Comparator sorter )
     253        public void addSorter( String id, Comparator<O> sorter )
    253254        {
    254255                this.sorter.put( id, sorter );
     
    264265        public void sortBy( String id )
    265266        {
    266                 currentSorter = (Comparator)sorter.get( id );
     267                currentSorter = sorter.get( id );
    267268                sort();
    268269        }
     
    274275         * @return Element on the current page on the given position.
    275276         */
    276         public Object getElementAtPosXonCurrentPage( int x )
    277         {
    278                 Object result = null;
     277        public O getElementAtPosXonCurrentPage( int x )
     278        {
     279                O result = null;
    279280                if( elements != null ) {
    280281                        int pageSize = getPageSize();
     
    307308         * @return First element.
    308309         */
    309         public Object getFirstElement()
     310        public O getFirstElement()
    310311        {
    311312                /*
     
    320321         * @return Last element.
    321322         */
    322         public Object getLastElement()
     323        public O getLastElement()
    323324        {
    324325                /*
     
    334335         * @return index
    335336         */
    336         private int getIndexOf( Object element )
     337        private int getIndexOf( O element )
    337338        {
    338339                if( elements != null ) {
     
    351352         * @return The next element
    352353         */
    353         public Object getNextElement( Object element )
    354         {
    355                 Object result = null;
     354        public O getNextElement( O element )
     355        {
     356                O result = null;
    356357               
    357358                int i = getIndexOf( element );
     
    372373         * @return The previous element
    373374         */
    374         public Object getPreviousElement( Object element )
    375         {
    376                 Object result = null;
     375        public O getPreviousElement( O element )
     376        {
     377                O result = null;
    377378               
    378379                int i = getIndexOf( element );
     
    391392         * @return Element at index i
    392393         */
    393         private Object getElement( int i )
    394         {
    395                 Object result = null;
     394        private O getElement( int i )
     395        {
     396                O result = null;
    396397               
    397398                if( elements != null ) {
     
    425426         * @param element
    426427         */
    427         public boolean isLastElement( Object element )
     428        public boolean isLastElement( O element )
    428429        {
    429430                if( elements == null )
     
    438439         * @param element
    439440         */
    440         public boolean isFirstElement( Object element )
     441        public boolean isFirstElement( O element )
    441442        {
    442443                if( elements == null )
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    re853d9a r8d826ce  
    5050import java.util.Enumeration;
    5151import java.util.Iterator;
    52 import java.util.ListIterator;
    5352import java.util.Locale;
    5453import java.util.zip.ZipEntry;
     
    317316                POP3MailBox mailbox;
    318317                MailCache mailCache;
    319                 Folder folder;
     318                Folder<String> folder;
    320319                String user, pass, host, error, info;
    321320                String replyTo, replyCC;
     
    414413                        if( mailPart.type.compareTo( "multipart/alternative" ) == 0 ) {
    415414                                MailPart chosen = null;
    416                                 for( ListIterator li = mailPart.parts.listIterator(); li.hasNext(); ) {
    417                                         MailPart subPart = (MailPart)li.next();
     415                                for( MailPart subPart : mailPart.parts ) {
    418416                                        if( subPart.type != null && subPart.type.compareTo( "text/plain" ) == 0 )
    419417                                                chosen = subPart;
     
    424422                                }
    425423                        }
    426                         for( ListIterator li = mailPart.parts.listIterator(); li.hasNext(); ) {
    427                                 MailPart part = (MailPart)li.next();
     424                        for( MailPart part : mailPart.parts )
    428425                                showPart( out, part, level + 1, html );
    429                         }
    430426                }
    431427                else if( mailPart.message ) {
    432                         for( ListIterator li = mailPart.parts.listIterator(); li.hasNext(); ) {
    433                                 MailPart part = (MailPart)li.next();
     428                        for( MailPart part : mailPart.parts )
    434429                                showPart( out, part, level + 1, html );
    435                         }                       
    436430                }
    437431                else {
     
    628622                                                sessionObject.state = STATE_LIST;
    629623                                                sessionObject.mailCache = new MailCache( sessionObject.mailbox );
    630                                                 sessionObject.folder = new Folder();
     624                                                sessionObject.folder = new Folder<String>();
    631625                                                sessionObject.folder.setElements( sessionObject.mailbox.getUIDLs() );
    632626                                                sessionObject.folder.addSorter( SORT_ID, new IDSorter( sessionObject.mailCache ) );
     
    10531047               
    10541048                if( part.multipart || part.message ) {
    1055                         for( Iterator it = part.parts.iterator(); it.hasNext(); ) {
    1056                                 MailPart subPart = getMailPartFromHashCode( (MailPart)it.next(), hashCode );
     1049                        for( MailPart p : part.parts ) {
     1050                                MailPart subPart = getMailPartFromHashCode( p, hashCode );
    10571051                                if( subPart != null )
    10581052                                        return subPart;
     
    12761270                        if( sessionObject.state == STATE_LIST ) {
    12771271                                processFolderButtons( sessionObject, request );
    1278                                 for( Iterator it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
     1272                                for( Iterator<String> it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
    12791273                                        String uidl = (String)it.next();
    12801274                                        Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_HEADER );
     
    15211515
    15221516                        if( multipart ) {
    1523                                 for( Iterator it = sessionObject.attachments.iterator(); it.hasNext(); ) {
    1524                                         Attachment attachment = (Attachment)it.next();
     1517                                for( Attachment attachment : sessionObject.attachments ) {
    15251518                                        body.append( "\r\n--" + boundary + "\r\nContent-type: " + attachment.getContentType() + "\r\nContent-Disposition: attachment; filename=\"" + attachment.getFileName() + "\"\r\nContent-Transfer-Encoding: " + attachment.getTransferEncoding() + "\r\n\r\n" );
    15261519                                        body.append( attachment.getData() );
     
    16161609                if( sessionObject.attachments != null && !sessionObject.attachments.isEmpty() ) {
    16171610                        boolean wroteHeader = false;
    1618                         for( Iterator it = sessionObject.attachments.iterator(); it.hasNext(); ) {
     1611                        for( Attachment attachment : sessionObject.attachments ) {
    16191612                                if( !wroteHeader ) {
    16201613                                        out.println( "<tr><td colspan=\"2\" align=\"center\">" + _("Attachments:") + "</td></tr>" );
    16211614                                        wroteHeader = true;
    16221615                                }
    1623                                 Attachment attachment = (Attachment)it.next();
    16241616                                out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\">&nbsp;" + attachment.getFileName() + "</td></tr>");
    16251617                        }
     
    16831675                int bg = 0;
    16841676                int i = 0;
    1685                 for( Iterator it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
     1677                for( Iterator<String> it = sessionObject.folder.currentPageIterator(); it != null && it.hasNext(); ) {
    16861678                        String uidl = (String)it.next();
    16871679                        Mail mail = sessionObject.mailCache.getMail( uidl, MailCache.FETCH_HEADER );
  • apps/susimail/src/src/i2p/susi/webmail/pop3/POP3MailBox.java

    re853d9a r8d826ce  
    6060        private Object synchronizer = null;
    6161
    62         private Object[] uidls = null;
    63 
    6462        /**
    6563         * @param host
     
    276274                        uidlToID.clear();
    277275                        uidlList.clear();
    278                         uidls = null;
    279276                       
    280277                        readBuffer = sendCmdNa( "UIDL", DEFAULT_BUFSIZE );
     
    296293                                        }
    297294                                }
    298                                 uidls = uidlList.toArray();
    299295                        }
    300296                        else {
     
    351347                uidlToID.clear();
    352348                sizes.clear();
    353                 uidls = null;
    354349                mails = 0;
    355350        }
     
    650645        {
    651646                int result = -1;
    652                 Integer intObject = (Integer)uidlToID.get( uidl );
     647                Integer intObject = uidlToID.get( uidl );
    653648                if( intObject != null ) {
    654649                        result = intObject.intValue();
     
    663658        public String getUIDLfromID( int id )
    664659        {
    665                 return (String)uidlList.get( id );
     660                return uidlList.get( id );
    666661        }
    667662        /**
     
    669664         * @return A list of the available UIDLs.
    670665         */
    671         public Object[] getUIDLs()
    672         {
    673                 return uidls;
     666        public String[] getUIDLs()
     667        {
     668                return uidlList.toArray(new String[uidlList.size()]);
    674669        }
    675670        /**
Note: See TracChangeset for help on using the changeset viewer.