Package org.jnode.nntp.processor

Source Code of org.jnode.nntp.processor.GroupProcessor

package org.jnode.nntp.processor;

import jnode.event.Notifier;
import org.apache.commons.lang.StringUtils;
import org.jnode.nntp.DataProvider;
import org.jnode.nntp.DataProviderImpl;
import org.jnode.nntp.Processor;
import org.jnode.nntp.event.GroupSelectedEvent;
import org.jnode.nntp.model.Auth;
import org.jnode.nntp.model.NewsGroup;
import org.jnode.nntp.model.NntpResponse;

import java.util.Collection;
import java.util.LinkedList;

public class GroupProcessor implements Processor {

    private DataProvider dataProvider = new DataProviderImpl();

    @Override
    public Collection<String> process(Collection<String> params, Long id, Long selectedArticleId, Auth auth) {

        String groupName = params.iterator().next();
        NewsGroup group = dataProvider.newsGroup(groupName, auth);
        if (group == null) {
            return responseNotFound();
        }

        Notifier.INSTANSE.notify(new GroupSelectedEvent(group));

        return responseGroup(groupName, group);
    }

    private Collection<String> responseNotFound() {
        Collection<String> response = new LinkedList<>();
        response.add(NntpResponse.Group.NO_SUCH_NEWSGROUP);
        return response;
    }

    private Collection<String> responseGroup(String groupName, NewsGroup group) {
        Collection<String> response = new LinkedList<>();

        String resposeCode = NntpResponse.Group.GROUP_SUCCESSFULLY_SELECTED;
        resposeCode = StringUtils.replace(resposeCode, "{number}", Long.toString(group.getNumberOfArticles()));
        resposeCode = StringUtils.replace(resposeCode, "{low}", Long.toString(group.getReportedLowWatermark()));
        resposeCode = StringUtils.replace(resposeCode, "{high}", Long.toString(group.getReportedHighWatermark()));
        resposeCode = StringUtils.replace(resposeCode, "{group}", groupName);

        response.add(resposeCode);

        return response;
    }
}
TOP

Related Classes of org.jnode.nntp.processor.GroupProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.