Class EventSubject

java.lang.Object
org.apache.cayenne.event.EventSubject
All Implemented Interfaces:
Serializable

public class EventSubject extends Object implements Serializable
This class encapsulates the String that is used to identify the subject that a listener is interested in. Using plain Strings causes several severe problems:
  • it's easy to misspell a subject, leading to undesired behaviour at runtime that is hard to debug.
  • in systems with many different subjects there is no safeguard for defining the same subject twice for different purposes. This is especially true in a distributed setting.
See Also:
  • Constructor Details

    • EventSubject

      protected EventSubject(String fullSubjectName)
      Protected constructor for new subjects.
      Parameters:
      fullSubjectName - the name of the new subject to be created
  • Method Details

    • getSubject

      public static EventSubject getSubject(Class<?> subjectOwner, String subjectName)
      Returns an event subject identified by the given owner and subject name.
      Parameters:
      subjectOwner - the Class used for uniquely identifying this subject
      subjectName - a String used as name, e.g. "MyEventTopic"
      Throws:
      IllegalArgumentException - if subjectOwner/subjectName are null or subjectName is empty.
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getSubjectName

      public String getSubjectName()
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Returns:
      a String in the form <ClassName 0x123456> SomeName
      See Also: