FileDocCategorySizeDatePackage
SimpleNNTPHeader.javaAPI DocApache Commons NET 1.4.1 API5128Sat Dec 03 10:05:50 GMT 2005org.apache.commons.net.nntp

SimpleNNTPHeader

public class SimpleNNTPHeader extends Object
This class is used to construct the bare minimum acceptable header for most news readers. To construct more complicated headers you should refer to RFC 822. When the Java Mail API is finalized, you will be able to use it to compose fully compliant Internet text messages.

The main purpose of the class is to faciliatate the article posting process, by relieving the programmer from having to explicitly format an article header. For example:

writer = client.postArticle();
if(writer == null) // failure
return false;
header = new SimpleNNTPHeader("foobar@foo.com", "Just testing");
header.addNewsgroup("alt.test");
header.addHeaderField("Organization", "Foobar, Inc.");
writer.write(header.toString());
writer.write("This is just a test");
writer.close();
if(!client.completePendingCommand()) // failure
return false;

author
Daniel F. Savarese
see
NNTPClient

Fields Summary
private String
__subject
private String
__from
private StringBuffer
__newsgroups
private StringBuffer
__headerFields
private int
__newsgroupCount
Constructors Summary
public SimpleNNTPHeader(String from, String subject)
Creates a new SimpleNNTPHeader instance initialized with the given from and subject header field values.

param
from The value of the From: header field. This should be the article poster's email address.
param
subject The value of the Subject: header field. This should be the subject of the article.

        __from = from;
        __subject = subject;
        __newsgroups = new StringBuffer();
        __headerFields = new StringBuffer();
        __newsgroupCount = 0;
    
Methods Summary
public voidaddHeaderField(java.lang.String headerField, java.lang.String value)
Adds an arbitrary header field with the given value to the article header. These headers will be written after the From, Newsgroups, and Subject fields when the SimpleNNTPHeader is convertered to a string. An example use would be:
header.addHeaderField("Organization", "Foobar, Inc.");

param
headerField The header field to add, not including the colon.
param
value The value of the added header field.

        __headerFields.append(headerField);
        __headerFields.append(": ");
        __headerFields.append(value);
        __headerFields.append('\n");
    
public voidaddNewsgroup(java.lang.String newsgroup)
Adds a newsgroup to the article Newsgroups: field.

param
newsgroup The newsgroup to add to the article's newsgroup distribution list.

        if (__newsgroupCount++ > 0)
            __newsgroups.append(',");
        __newsgroups.append(newsgroup);
    
public java.lang.StringgetFromAddress()
Returns the address used in the From: header field.

return
The from address.

        return __from;
    
public java.lang.StringgetNewsgroups()
Returns the contents of the Newsgroups: header field.

return
The comma-separated list of newsgroups to which the article is being posted.

        return __newsgroups.toString();
    
public java.lang.StringgetSubject()
Returns the subject used in the Subject: header field.

return
The subject.

        return __subject;
    
public java.lang.StringtoString()
Converts the SimpleNNTPHeader to a properly formatted header in the form of a String, including the blank line used to separate the header from the article body.

return
The article header in the form of a String.

        StringBuffer header = new StringBuffer();

        header.append("From: ");
        header.append(__from);
        header.append("\nNewsgroups: ");
        header.append(__newsgroups.toString());
        header.append("\nSubject: ");
        header.append(__subject);
        header.append('\n");
        if (__headerFields.length() > 0)
            header.append(__headerFields.toString());
        header.append('\n");

        return header.toString();