org.apache.commons.net.nntp

Class SimpleNNTPHeader


public class SimpleNNTPHeader
extends java.lang.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 Also:
NNTPClient

Field Summary

private String
__from
private StringBuffer
__headerFields
private int
__newsgroupCount
private StringBuffer
__newsgroups
private String
__subject

Constructor Summary

SimpleNNTPHeader(String from, String subject)
Creates a new SimpleNNTPHeader instance initialized with the given from and subject header field values.

Method Summary

void
addHeaderField(String headerField, String value)
Adds an arbitrary header field with the given value to the article header.
void
addNewsgroup(String newsgroup)
Adds a newsgroup to the article Newsgroups: field.
String
getFromAddress()
Returns the address used in the From: header field.
String
getNewsgroups()
Returns the contents of the Newsgroups: header field.
String
getSubject()
Returns the subject used in the Subject: header field.
String
toString()
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.

Field Details

__from

private String __from


__headerFields

private StringBuffer __headerFields


__newsgroupCount

private int __newsgroupCount


__newsgroups

private StringBuffer __newsgroups


__subject

private String __subject

Constructor Details

SimpleNNTPHeader

public SimpleNNTPHeader(String from,
                        String subject)
Creates a new SimpleNNTPHeader instance initialized with the given from and subject header field values.

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

Method Details

addHeaderField

public void addHeaderField(String headerField,
                           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.");
 

Parameters:
headerField - The header field to add, not including the colon.
value - The value of the added header field.


addNewsgroup

public void addNewsgroup(String newsgroup)
Adds a newsgroup to the article Newsgroups: field.

Parameters:
newsgroup - The newsgroup to add to the article's newsgroup distribution list.


getFromAddress

public String getFromAddress()
Returns the address used in the From: header field.

Returns:
The from address.


getNewsgroups

public String getNewsgroups()
Returns the contents of the Newsgroups: header field.

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


getSubject

public String getSubject()
Returns the subject used in the Subject: header field.

Returns:
The subject.


toString

public String toString()
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.

Returns:
The article header in the form of a String.