# com.bea.p13n.usermgmt.profile
ProfileType Class

public class ProfileType
extends `Object`
implements `Serializable`

Typesafe enum pattern for profile types

Hierarchy
  `Object`
  `ProfileType`

All Implemented Interfaces
  `Serializable`

## Field Summary

`public static final `ProfileType`` | `ANONYMOUS` Anonymous users have no id associated with them.
`public static final `ProfileType`` | `REGISTERED` A registered user has registered on our site and has a "real" username and groupname set as their ProfileIdentity.
`public static final `ProfileType`` | `TRACKABLE` Tracked users are are like anonymous users, except that we've been able to assign an id to them.
`public static final `ProfileType`` | `TRACKED` A TRACKABLE profile that is now TRACKED -- we have an EJB for its properties.
`public static final `ProfileType`` | `UNKNOWN` An unknown profile type could be when a ProfileWrapper has not yet been created, eg, when the session first begins

## Method Summary

`public final boolean` | `equals`(`Object` that) Comparitor
`public final int` | `hashCode`() Hashcode
`public `String`` | `toString`() Identifier

Methods from class `java.lang.`Object``
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Detail

### ANONYMOUS

    public static final ProfileType ANONYMOUS

  Anonymous users have no id associated with them. They may have visited the site before, but Cookies are/were disabled, so there is no way of tracking them.

### REGISTERED

    public static final ProfileType REGISTERED

  A registered user has registered on our site and has a "real" username and groupname set as their ProfileIdentity.

### TRACKABLE

    public static final ProfileType TRACKABLE

  Tracked users are are like anonymous users, except that we've been able to assign an id to them. Tracking is enabled via configuration of the TrackAnonymousFilter in web.xml. We have not yet written their data to the database.

  Once a trackable user decides to register, we merge their profile info into the registered user's profile.

### TRACKED

    public static final ProfileType TRACKED

  A TRACKABLE profile that is now TRACKED -- we have an EJB for its properties. In other words, they have stayed on our site long enough to be tracked. We distinguish the two as follows: a) TRACKABLE means the user is still anonymous, AND we have enabled tracking. The visitor threshold has not yet been exceeded, so we have not yet persisted information about them, nor have we written a tracking Cookie to the user. b) TRACKED means the threshold has been exceeded and we've peristed their information. We have also written a tracking Cookie to the user. Once tracking is enabled, and the user stays on the site for longer than the visitLength, we assign an ID to them and persist their profile to the database. When that user revists our site, we look for that id in the Cookie, and if found, retrieve their profile from the database.

### UNKNOWN

    public static final ProfileType UNKNOWN

  An unknown profile type could be when a ProfileWrapper has not yet been created, eg, when the session first begins

## Method Detail

### equals(Object) Method

    public final boolean equals(Object that)

Comparitor

Overrides
  `Object.equals(Object)`

### hashCode() Method

    public final int hashCode()

Hashcode

Overrides
  `Object.hashCode()`

### toString() Method

    public String toString()

Identifier

Overrides
  `Object.toString()`