p2ps.discovery
Class AdvertisementFactory

java.lang.Object
  extended byp2ps.discovery.AdvertisementFactory

public class AdvertisementFactory
extends java.lang.Object

A factory for creating new Adevrtisement instances (also Query instances as Query is a sub-class of Advertisement). For each advertisement type an advertisement instantiator must be registered.

Version:
$Revision: 295 $
Author:
Ian Wang

Constructor Summary
AdvertisementFactory(Peer peer, AdvertisementInstantiator defaultinst)
          Creates a new advertisement factory.
 
Method Summary
 byte[] advertToByteArray(Advertisement advert)
           
 byte[] advertToByteArray(Advertisement advert, long expdate)
           
 Advertisement createAdvertisement(byte[] data)
           
 Advertisement createAdvertisement(java.io.InputStream in)
           
 Advertisement createAdvertisement(java.io.Reader in)
           
 Advertisement newAdvertisement(java.lang.String type)
           
 void register(AdvertisementInstantiator inst)
          Register an instantiator to generate advertisement classes from an xml advert
 void unregister(AdvertisementInstantiator inst)
          Unregister the instantiator for an advertisement type
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AdvertisementFactory

public AdvertisementFactory(Peer peer,
                            AdvertisementInstantiator defaultinst)
Creates a new advertisement factory.

Parameters:
peer - the main peer class
defaultinst - the default advertisement instantiator for unknown advert types
Method Detail

register

public void register(AdvertisementInstantiator inst)
Register an instantiator to generate advertisement classes from an xml advert


unregister

public void unregister(AdvertisementInstantiator inst)
Unregister the instantiator for an advertisement type


newAdvertisement

public Advertisement newAdvertisement(java.lang.String type)
                               throws java.io.IOException
Returns:
a new advert of the specified type
Throws:
java.io.IOException

createAdvertisement

public Advertisement createAdvertisement(java.io.InputStream in)
                                  throws java.io.IOException
Returns:
an advert generated from the specified input stream (null if not an advert)
Throws:
java.io.IOException

createAdvertisement

public Advertisement createAdvertisement(java.io.Reader in)
                                  throws java.io.IOException
Returns:
an advert generated from the specified reader (null if not an advert)
Throws:
java.io.IOException

createAdvertisement

public Advertisement createAdvertisement(byte[] data)
                                  throws java.io.IOException
Returns:
an advert generated from the specified byte array (null if not an advert)
Throws:
java.io.IOException

advertToByteArray

public byte[] advertToByteArray(Advertisement advert)
                         throws java.io.IOException
Returns:
the advert as a byte array
Throws:
java.io.IOException

advertToByteArray

public byte[] advertToByteArray(Advertisement advert,
                                long expdate)
                         throws java.io.IOException
Returns:
the advert as a byte array with the specified expiry date
Throws:
java.io.IOException