Package org.astrogrid.samp.web

# Class WebHubProfile

java.lang.Object
org.astrogrid.samp.web.WebHubProfile

All Implemented Interfaces:
  `ConfigHubProfile`, `HubProfile`, `ProfileToken`

public class WebHubProfile extends Object implements HubProfile, ConfigHubProfile
HubProfile implementation for Web Profile.

Since:
  2 Feb 2011
Author:
  Mark Taylor, Laurent Bourges

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`WebHubProfile.ServerFactory`
Creates and configures the HTTP server on which the Web Profile resides.

## Constructor Summary

Constructors
Constructor
Description
`WebHubProfile()`
Constructs a profile with default configuration.
`WebHubProfile(WebHubProfile.ServerFactory serverFactory, ClientAuthorizer auth, MessageRestriction mrestrict, KeyGenerator keyGen, boolean controlUrls)`
Constructs a profile with configuration options.

## Method Summary

Modifier and Type
Method
Description
`static KeyGenerator`
`createKeyGenerator()`
Convenience method to return a new key generator suitable for use with a WebHubProfile.
`JToggleButton.ToggleButtonModel[]`
`getConfigModels()`
Returns some toggle button models for hub profile configuration.
`MessageRestriction`
`getMessageRestriction()`
Returns a MessageRestriction object which controls what messages may be sent by clients registering under ths profile.
`String`
`getProfileName()`
Returns the name of this profile.
`boolean`
`isRunning()`
Indicates whether this profile is currently running.
`void`
`start(ClientProfile profile)`
Starts this profile's activity allowing access to a given supplier of hub connections.
`void`
`stop()`
Ends this profile's activity on behalf of the hub.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### WebHubProfile

public WebHubProfile(WebHubProfile.ServerFactory serverFactory, ClientAuthorizer auth, MessageRestriction mrestrict, KeyGenerator keyGen, boolean controlUrls)
Constructs a profile with configuration options.

Parameters:
  `serverFactory` - factory for server providing HTTP and XML-RPC implementation
  `auth` - client authorizer implementation
  `mrestrict` - restriction for permitted outward MTypes
  `keyGen` - key generator for private keys
  `controlUrls` - true iff access to local URLs is to be restricted

### WebHubProfile

public WebHubProfile() throws IOException
Constructs a profile with default configuration.

Throws:
  `IOException`

## Method Details

### getProfileName

public String getProfileName()
Description copied from interface: `HubProfile`
Returns the name of this profile.

Specified by:
  `getProfileName` in interface `HubProfile`
Specified by:
  `getProfileName` in interface `ProfileToken`
Returns:
  profile name, usually one word

### getMessageRestriction

public MessageRestriction getMessageRestriction()
Description copied from interface: `ProfileToken`
Returns a MessageRestriction object which controls what messages may be sent by clients registering under ths profile. If null is returned, any messages may be sent.

Specified by:
  `getMessageRestriction` in interface `ProfileToken`
Returns:
  message restriction, or null

### start

public void start(ClientProfile profile) throws IOException
Description copied from interface: `HubProfile`
Starts this profile's activity allowing access to a given supplier of hub connections.

Specified by:
  `start` in interface `HubProfile`
Parameters:
  `profile` - object which can provide hub connections
Throws:
  `IOException`

### isRunning

public boolean isRunning()
Description copied from interface: `HubProfile`
Indicates whether this profile is currently running.

Specified by:
  `isRunning` in interface `HubProfile`
Returns:
  true iff profile is running

### stop

public void stop()
Description copied from interface: `HubProfile`
Ends this profile's activity on behalf of the hub. Any resources associated with the profile should be released. This does not include messaging registered clients about profile termination; that should be taken care of by the user of this profile.

Specified by:
  `stop` in interface `HubProfile`

### getConfigModels

public JToggleButton.ToggleButtonModel[] getConfigModels()
Description copied from interface: `ConfigHubProfile`
Returns some toggle button models for hub profile configuration.

Specified by:
  `getConfigModels` in interface `ConfigHubProfile`
Returns:
  toggle button model array

### createKeyGenerator

public static KeyGenerator createKeyGenerator()
Convenience method to return a new key generator suitable for use with a WebHubProfile.

Returns:
  new key generator for web hub private keys