Coverage Report - org.apache.ojb.broker.PBStateEvent
 
Classes in this File Line Coverage Branch Coverage Complexity
PBStateEvent
N/A
N/A
3.333
PBStateEvent$Type
N/A
N/A
3.333
 
 1  
 package org.apache.ojb.broker;
 2  
 
 3  
 /* Copyright 2003-2005 The Apache Software Foundation
 4  
  *
 5  
  * Licensed under the Apache License, Version 2.0 (the "License");
 6  
  * you may not use this file except in compliance with the License.
 7  
  * You may obtain a copy of the License at
 8  
  *
 9  
  *     http://www.apache.org/licenses/LICENSE-2.0
 10  
  *
 11  
  * Unless required by applicable law or agreed to in writing, software
 12  
  * distributed under the License is distributed on an "AS IS" BASIS,
 13  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  
  * See the License for the specific language governing permissions and
 15  
  * limitations under the License.
 16  
  */
 17  
 
 18  
 import org.apache.commons.lang.builder.ToStringBuilder;
 19  
 
 20  
 /**
 21  
  * The <code>PBStateEvent</code> encapsulates information about
 22  
  * the life-cycle/transaction demarcation of the used {@link org.apache.ojb.broker.PersistenceBroker}
 23  
  * instance.
 24  
  *
 25  
  * @author Armin Waibel
 26  
  * @version $Id: PBStateEvent.java,v 1.1 2007-08-24 22:17:35 ewestfal Exp $
 27  
  */
 28  
 public final class PBStateEvent extends PersistenceBrokerEvent
 29  
 {
 30  
     /** Denotes an event that happens before the broker will be closed. */
 31  
     public static final int KEY_BEFORE_CLOSE = 1;
 32  
     /** Denotes an event that happens before a transaction will be started. */
 33  
     public static final int KEY_BEFORE_BEGIN = 2;
 34  
     /** Denotes an event that happens before a transaction will be comitted. */
 35  
     public static final int KEY_BEFORE_COMMIT = 3;
 36  
     /** Denotes an event that happens before a transaction will be rolled back. */
 37  
     public static final int KEY_BEFORE_ROLLBACK = 4;
 38  
     /** Denotes an event that happens after a transaction was started. */
 39  
     public static final int KEY_AFTER_BEGIN = 5;
 40  
     /** Denotes an event that happens after a transaction was comitted. */
 41  
     public static final int KEY_AFTER_COMMIT = 6;
 42  
     /** Denotes an event that happens after a broker was opened. */
 43  
     public static final int KEY_AFTER_OPEN = 7;
 44  
     /** Denotes an event that happens after a transaction was rolled back. */
 45  
     public static final int KEY_AFTER_ROLLBACK = 8;
 46  
 
 47  
     private Type eventType;
 48  
 
 49  
     /**
 50  
      * Creates a new event instance.
 51  
      * 
 52  
      * @param broker    The broker
 53  
      * @param eventType The type of the event
 54  
      */
 55  
     public PBStateEvent(PersistenceBroker broker, Type eventType)
 56  
     {
 57  
         super(broker);
 58  
         this.eventType = eventType;
 59  
     }
 60  
 
 61  
     /**
 62  
      * {@inheritDoc}
 63  
      */
 64  
     public String toString()
 65  
     {
 66  
         ToStringBuilder buf = new ToStringBuilder(this);
 67  
         buf.append("type", eventType.toString()).
 68  
                 append("source object", getSource());
 69  
         return buf.toString();
 70  
     }
 71  
 
 72  
     /**
 73  
      * Returns the event type.
 74  
      * 
 75  
      * @return The event type
 76  
      */
 77  
     public Type getEventType()
 78  
     {
 79  
         return eventType;
 80  
     }
 81  
 
 82  
     /**
 83  
      * Enum-like class for the event types.
 84  
      */
 85  
     public static class Type
 86  
     {
 87  
         /** Denotes an event that happens before a transaction will be started. */
 88  
         public static final Type BEFORE_BEGIN = new Type(KEY_BEFORE_BEGIN);
 89  
         /** Denotes an event that happens after a transaction was started. */
 90  
         public static final Type AFTER_BEGIN = new Type(KEY_AFTER_BEGIN);
 91  
         /** Denotes an event that happens before a transaction will be comitted. */
 92  
         public static final Type BEFORE_COMMIT = new Type(KEY_BEFORE_COMMIT);
 93  
         /** Denotes an event that happens after a transaction was comitted. */
 94  
         public static final Type AFTER_COMMIT = new Type(KEY_AFTER_COMMIT);
 95  
         /** Denotes an event that happens before a transaction will be rolled back. */
 96  
         public static final Type BEFORE_ROLLBACK = new Type(KEY_BEFORE_ROLLBACK);
 97  
         /** Denotes an event that happens after a transaction was rolled back. */
 98  
         public static final Type AFTER_ROLLBACK = new Type(KEY_AFTER_ROLLBACK);
 99  
         /** Denotes an event that happens after a broker was opened. */
 100  
         public static final Type AFTER_OPEN = new Type(KEY_AFTER_OPEN);
 101  
         /** Denotes an event that happens before the broker will be closed. */
 102  
         public static final Type BEFORE_CLOSE = new Type(KEY_BEFORE_CLOSE);
 103  
 
 104  
         private int type;
 105  
 
 106  
         /**
 107  
          * Creates a new instance.
 108  
          * 
 109  
          * @param type The type value
 110  
          */
 111  
         protected Type(int type)
 112  
         {
 113  
             this.type = type;
 114  
         }
 115  
 
 116  
         /**
 117  
          * {@inheritDoc}
 118  
          */
 119  
         public final boolean equals(Object obj)
 120  
         {
 121  
             if (obj == this)
 122  
             {
 123  
                 return true;
 124  
             }
 125  
             if (!(obj instanceof PBStateEvent))
 126  
             {
 127  
                 return false;
 128  
             }
 129  
 
 130  
             return type == ((Type) obj).type;
 131  
         }
 132  
 
 133  
         /**
 134  
          * {@inheritDoc}
 135  
          */
 136  
         public final int hashCode()
 137  
         {
 138  
             return type;
 139  
         }
 140  
         
 141  
         /**
 142  
          * Returns the type id.
 143  
          * 
 144  
          * @return The type id
 145  
          */
 146  
         public final int typeId()
 147  
         {
 148  
             return type;
 149  
         }
 150  
 
 151  
         /**
 152  
          * {@inheritDoc}
 153  
          */
 154  
         public String toString()
 155  
         {
 156  
             return this.getClass().getName() + " [type= " + typeAsName(type) + "]";
 157  
         }
 158  
 
 159  
         private String typeAsName(int aType)
 160  
         {
 161  
             if (aType == KEY_AFTER_BEGIN)
 162  
             {
 163  
                 return "AFTER_BEGIN";
 164  
             }
 165  
             else if (aType == KEY_AFTER_COMMIT)
 166  
             {
 167  
                 return "AFTER_COMMIT";
 168  
             }
 169  
             else if (aType == KEY_AFTER_OPEN)
 170  
             {
 171  
                 return "AFTER_OPEN";
 172  
             }
 173  
             else if (aType == KEY_AFTER_ROLLBACK)
 174  
             {
 175  
                 return "AFTER_ROLLBACK";
 176  
             }
 177  
             else if (aType == KEY_BEFORE_BEGIN)
 178  
             {
 179  
                 return "BEFORE_BEGIN";
 180  
             }
 181  
             else if (aType == KEY_BEFORE_CLOSE)
 182  
             {
 183  
                 return "BEFORE_CLOSE";
 184  
             }
 185  
             else if (aType == KEY_BEFORE_COMMIT)
 186  
             {
 187  
                 return "BEFORE_COMMIT";
 188  
             }
 189  
             else if (aType == KEY_BEFORE_ROLLBACK)
 190  
             {
 191  
                 return "BEFORE_ROLLBACK";
 192  
             }
 193  
             else
 194  
             {
 195  
                 throw new OJBRuntimeException("Could not find type " + aType);
 196  
             }
 197  
         }
 198  
     }
 199  
 }