public boolean isAddRow()

in src/main/java/org/apache/log4j/chainsaw/ChainsawCyclicBufferTableModel.java [618:667]


    public boolean isAddRow(LoggingEventWrapper loggingEventWrapper) {
        Object id = loggingEventWrapper.getLoggingEvent().getProperty(Constants.LOG4J_ID_KEY);

        //only set the property if it doesn't already exist
        if (id == null) {
            id = ++uniqueRow;
            loggingEventWrapper.setProperty(Constants.LOG4J_ID_KEY, id.toString());
        }

        loggingEventWrapper.updateColorRuleColors(colorizer.getBackgroundColor(loggingEventWrapper.getLoggingEvent()), colorizer.getForegroundColor(loggingEventWrapper.getLoggingEvent()));
        Rule findRule = colorizer.getFindRule();
        if (findRule != null) {
            loggingEventWrapper.evaluateSearchRule(colorizer.getFindRule());
        }

        boolean rowAdded = false;

        /**
         * If we're in cyclic mode and over budget on the size, the addition of a new event will
         * cause the oldest event to fall off the cliff. We need to remove that events ID from the
         * Set so we are not keeping track of IDs for all events ever received (we'd run out of
         * memory...)
         */
        synchronized (mutex) {
            if (cyclic) {
                CyclicBufferList bufferList = (CyclicBufferList) unfilteredList;
                if (bufferList.size() == bufferList.getMaxSize()) {
                    reachedCapacity = true;
                }
            }
            int unfilteredSize = unfilteredList.size();
            LoggingEventWrapper lastLoggingEventWrapper = null;
            if (unfilteredSize > 0) {
                lastLoggingEventWrapper = (LoggingEventWrapper) unfilteredList.get(unfilteredSize - 1);
            }
            unfilteredList.add(loggingEventWrapper);
            if ((ruleMediator == null) || (ruleMediator.evaluate(loggingEventWrapper.getLoggingEvent(), null))) {
                loggingEventWrapper.setDisplayed(true);
                updateEventMillisDelta(loggingEventWrapper, lastLoggingEventWrapper);
                filteredList.add(loggingEventWrapper);
                rowAdded = true;
            } else {
                loggingEventWrapper.setDisplayed(false);
            }
        }

        checkForNewColumn(loggingEventWrapper);

        return rowAdded;
    }