001package com.ganteater.ae.desktop.view;
002
003import java.util.ArrayList;
004import java.util.List;
005
006import com.ganteater.ae.desktop.view.ListLogPresenter.LogRecord;
007
008public class LogList {
009
010        private int logLevel;
011
012        private List<LogRecord> debuglogs = new ArrayList<LogRecord>();
013        private List<LogRecord> infologs = new ArrayList<LogRecord>();
014        private List<LogRecord> warnlogs = new ArrayList<LogRecord>();
015        private List<LogRecord> errorlogs = new ArrayList<LogRecord>();
016
017        public LogList(int level) {
018                logLevel = level;
019        }
020
021        public int getSize() {
022                switch (logLevel) {
023                case 3:
024                        return debuglogs.size();
025                case 2:
026                        return infologs.size();
027                case 1:
028                        return warnlogs.size();
029                case 0:
030                        return errorlogs.size();
031
032                default:
033                        return debuglogs.size();
034                }
035        }
036
037        public LogRecord get(int index) {
038                switch (logLevel) {
039                case 3:
040                        return debuglogs.get(index);
041                case 2:
042                        return infologs.get(index);
043                case 1:
044                        return warnlogs.get(index);
045                case 0:
046                        return errorlogs.get(index);
047
048                default:
049                        return debuglogs.get(index);
050                }
051        }
052
053        public void clear() {
054                debuglogs.clear();
055                infologs.clear();
056                warnlogs.clear();
057                errorlogs.clear();
058        }
059
060        public void add(LogRecord logRecord, boolean b) {
061
062                int logLevel2 = logRecord.getLogLevel();
063                switch (logLevel2) {
064                case 0:
065                        if (b && errorlogs.size() > 50) {
066                                while (errorlogs.size() > 50) {
067                                        errorlogs.remove(0);
068                                }
069                        }
070                        errorlogs.add(logRecord);
071
072                case 1:
073                        if (b && warnlogs.size() > 50) {
074                                while (warnlogs.size() > 50) {
075                                        warnlogs.remove(0);
076                                }
077                        }
078                        warnlogs.add(logRecord);
079
080                case 2:
081                        if (b && infologs.size() > 50) {
082                                while (infologs.size() > 50) {
083                                        infologs.remove(0);
084                                }
085                        }
086                        infologs.add(logRecord);
087
088                default:
089                        if (b && debuglogs.size() > 50) {
090                                while (debuglogs.size() > 50) {
091                                        debuglogs.remove(0);
092                                }
093                        }
094                        debuglogs.add(logRecord);
095                }
096        }
097
098        public void setLevel(int logLevel) {
099                this.logLevel = logLevel;
100        }
101
102}