Coverage report

  %line %branch
org.apache.torque.om.BaseObject
0% 
0% 

 1  
 package org.apache.torque.om;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with the License.  You may obtain a copy of the License at
 11  
  *
 12  
  *   http://www.apache.org/licenses/LICENSE-2.0
 13  
  *
 14  
  * Unless required by applicable law or agreed to in writing,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import java.io.Serializable;
 23  
 import java.sql.Connection;
 24  
 
 25  
 import org.apache.commons.logging.Log;
 26  
 import org.apache.commons.logging.LogFactory;
 27  
 
 28  
 import org.apache.torque.TorqueException;
 29  
 import org.apache.torque.map.TableMap;
 30  
 
 31  
 /**
 32  
  * This class contains attributes and methods that are used by all
 33  
  * business objects within the system.
 34  
  *
 35  
  * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a>
 36  
  * @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
 37  
  * @version $Id: BaseObject.java 516325 2007-03-09 08:03:53Z seade $
 38  
  */
 39  0
 public abstract class BaseObject implements Persistent, Serializable
 40  
 {
 41  
     /** The constant denoting an unset numeric database identifier. */
 42  
     public static final int NEW_ID = -1;
 43  
 
 44  
     /**
 45  
      * Shared portion of the error message thrown for methods which
 46  
      * are not implemented.
 47  
      */
 48  
     private static final String NOT_IMPLEMENTED
 49  
             = "Not implemented: Method must be overridden if called";
 50  
 
 51  
     /** attribute to determine if this object has previously been saved. */
 52  0
     private boolean isNew = true;
 53  
 
 54  
     /** The unique id for the object which can be used for persistence. */
 55  0
     private ObjectKey primaryKey = null;
 56  
 
 57  
     /**
 58  
      * A flag that indicates an object has been modified since it was
 59  
      * last retrieved from the persistence mechanism.  This flag is
 60  
      * used to determine if this object should be saved to the
 61  
      * database.  We initialize it to true to force new objects to be
 62  
      * saved.
 63  
      */
 64  0
     private boolean modified = true;
 65  
 
 66  
     /** Cache the log to avoid looking it up every time its needed. */
 67  0
     private transient Log log = null;
 68  
 
 69  
     /**
 70  
      * getter for the object primaryKey.
 71  
      *
 72  
      * @return the object primaryKey as an Object
 73  
      */
 74  
     public ObjectKey getPrimaryKey()
 75  
     {
 76  0
         return primaryKey;
 77  
     }
 78  
 
 79  
     /**
 80  
      * Returns whether the object has been modified.
 81  
      *
 82  
      * @return True if the object has been modified.
 83  
      */
 84  
     public boolean isModified()
 85  
     {
 86  0
         return modified;
 87  
     }
 88  
 
 89  
     /**
 90  
      * Returns whether the object has ever been saved.  This will
 91  
      * be false, if the object was retrieved from storage or was created
 92  
      * and then saved.
 93  
      *
 94  
      * @return true, if the object has never been persisted.
 95  
      */
 96  
     public boolean isNew()
 97  
     {
 98  0
         return isNew;
 99  
     }
 100  
 
 101  
     /**
 102  
      * Setter for the isNew attribute.  This method will be called
 103  
      * by Torque-generated children and Peers.
 104  
      *
 105  
      * @param b the state of the object.
 106  
      */
 107  
     public void setNew(boolean b)
 108  
     {
 109  0
         this.isNew = b;
 110  0
     }
 111  
 
 112  
     /**
 113  
      * Sets the PrimaryKey for the object.
 114  
      *
 115  
      * @param primaryKey The new PrimaryKey for the object.
 116  
      * @exception TorqueException This method will not throw any exceptions
 117  
      * but this allows for children to override the method more easily
 118  
      */
 119  
     public void setPrimaryKey(String primaryKey) throws TorqueException
 120  
     {
 121  0
         this.primaryKey = new StringKey(primaryKey);
 122  0
     }
 123  
 
 124  
     /**
 125  
      * Sets the PrimaryKey for the object as an Object.
 126  
      *
 127  
      * @param primaryKey The new PrimaryKey for the object.
 128  
      * @exception TorqueException This method will not throw any exceptions
 129  
      * but this allows for children to override the method more easily
 130  
      */
 131  
     public void setPrimaryKey(SimpleKey[] primaryKey) throws TorqueException
 132  
     {
 133  0
         this.primaryKey = new ComboKey(primaryKey);
 134  0
     }
 135  
 
 136  
     /**
 137  
      * Sets the PrimaryKey for the object as an Object.
 138  
      *
 139  
      * @param primaryKey The new PrimaryKey for the object.
 140  
      * @exception TorqueException This method will not throw any exceptions
 141  
      * but this allows for children to override the method more easily
 142  
      */
 143  
     public void setPrimaryKey(ObjectKey primaryKey) throws TorqueException
 144  
     {
 145  0
         this.primaryKey = primaryKey;
 146  0
     }
 147  
 
 148  
     /**
 149  
      * Sets the modified state for the object.
 150  
      *
 151  
      * @param m The new modified state for the object.
 152  
      */
 153  
     public void setModified(boolean m)
 154  
     {
 155  0
         modified = m;
 156  0
     }
 157  
 
 158  
     /**
 159  
      * Sets the modified state for the object to be false.
 160  
      */
 161  
     public void resetModified()
 162  
     {
 163  0
         modified = false;
 164  0
     }
 165  
 
 166  
     /**
 167  
      * Retrieves a field from the object by name. Must be overridden if called.
 168  
      * BaseObject's implementation will throw an Error.
 169  
      *
 170  
      * @param field The name of the field to retrieve.
 171  
      * @return The retrieved field value
 172  
      *
 173  
      */
 174  
     public Object getByName(String field)
 175  
     {
 176  0
         throw new Error("BaseObject.getByName: " + NOT_IMPLEMENTED);
 177  
     }
 178  
 
 179  
     /**
 180  
      * Set a field in the object by field (Java) name.
 181  
      *
 182  
      * @param name field name
 183  
      * @param value field value
 184  
      * @return True if value was set, false if not (invalid name / protected
 185  
      *         field).
 186  
      * @throws IllegalArgumentException if object type of value does not match
 187  
      *             field object type.
 188  
      * @throws TorqueException If a problem occurs with the set[Field] method.
 189  
      */
 190  
     public boolean setByName(String name, Object value)
 191  
             throws TorqueException
 192  
     {
 193  0
         throw new Error("BaseObject.setByName: " + NOT_IMPLEMENTED);
 194  
     }
 195  
 
 196  
     /**
 197  
      * Retrieves a field from the object by name passed in as a String. Must be
 198  
      * overridden if called. BaseObject's implementation will throw an Error.
 199  
      *
 200  
      * @param name field name
 201  
      * @return value of the field
 202  
      */
 203  
     public Object getByPeerName(String name)
 204  
     {
 205  0
         throw new Error("BaseObject.getByPeerName: " + NOT_IMPLEMENTED);
 206  
     }
 207  
 
 208  
     /**
 209  
      * Set field values by Peer Field Name
 210  
      *
 211  
      * @param name field name
 212  
      * @param value field value
 213  
      * @return True if value was set, false if not (invalid name / protected
 214  
      *         field).
 215  
      * @throws IllegalArgumentException if object type of value does not match
 216  
      *             field object type.
 217  
      * @throws TorqueException If a problem occurs with the set[Field] method.
 218  
      */
 219  
     public boolean setByPeerName(String name, Object value)
 220  
             throws TorqueException
 221  
     {
 222  0
         throw new Error("BaseObject.setByPeerName: " + NOT_IMPLEMENTED);
 223  
     }
 224  
 
 225  
     /**
 226  
      * Retrieves a field from the object by position as specified in a database
 227  
      * schema for example. Must be overridden if called. BaseObject's
 228  
      * implementation will throw an Error.
 229  
      *
 230  
      * @param pos field position
 231  
      * @return value of the field
 232  
      */
 233  
     public Object getByPosition(int pos)
 234  
     {
 235  0
         throw new Error("BaseObject.getByPosition: " + NOT_IMPLEMENTED);
 236  
     }
 237  
 
 238  
     /**
 239  
      * Set field values by it's position (zero based) in the XML schema.
 240  
      *
 241  
      * @param position The field position
 242  
      * @param value field value
 243  
      * @return True if value was set, false if not (invalid position / protected
 244  
      *         field).
 245  
      * @throws IllegalArgumentException if object type of value does not match
 246  
      *             field object type.
 247  
      * @throws TorqueException If a problem occurs with the set[Field] method.
 248  
      */
 249  
     public boolean setByPosition(int position, Object value)
 250  
             throws TorqueException
 251  
     {
 252  0
         throw new Error("BaseObject.setByPosition: " + NOT_IMPLEMENTED);
 253  
     }
 254  
 
 255  
     /**
 256  
      * Compares this with another <code>BaseObject</code> instance. If
 257  
      * <code>obj</code> is an instance of <code>BaseObject</code>,
 258  
      * delegates to <code>equals(BaseObject)</code>. Otherwise, returns
 259  
      * <code>false</code>.
 260  
      *
 261  
      * @param obj The object to compare to.
 262  
      * @return Whether equal to the object specified.
 263  
      */
 264  
     public boolean equals(Object obj)
 265  
     {
 266  0
         if (obj != null && obj instanceof BaseObject)
 267  
         {
 268  0
             return equals((BaseObject) obj);
 269  
         }
 270  
         else
 271  
         {
 272  0
             return false;
 273  
         }
 274  
     }
 275  
 
 276  
     /**
 277  
      * Compares the primary key of this instance with the key of another.
 278  
      *
 279  
      * @param bo The object to compare to.
 280  
      * @return   Whether the primary keys are equal and the object have the
 281  
      *           same class.
 282  
      */
 283  
     public boolean equals(BaseObject bo)
 284  
     {
 285  0
         if (bo == null)
 286  
         {
 287  0
             return false;
 288  
         }
 289  0
         if (this == bo)
 290  
         {
 291  0
             return true;
 292  
         }
 293  0
         else if (getPrimaryKey() == null || bo.getPrimaryKey() == class="keyword">null)
 294  
         {
 295  0
             return false;
 296  
         }
 297  0
         else if (!getClass().equals(bo.getClass()))
 298  
         {
 299  0
             return false;
 300  
         }
 301  
         else
 302  
         {
 303  0
             return getPrimaryKey().equals(bo.getPrimaryKey());
 304  
         }
 305  
     }
 306  
 
 307  
     /**
 308  
      * If the primary key is not <code>null</code>, return the hashcode of the
 309  
      * primary key.  Otherwise calls <code>Object.hashCode()</code>.
 310  
      *
 311  
      * @return an <code>int</code> value
 312  
      */
 313  
     public int hashCode()
 314  
     {
 315  0
         ObjectKey ok = getPrimaryKey();
 316  0
         if (ok == null)
 317  
         {
 318  0
             return super.hashCode();
 319  
         }
 320  
 
 321  0
         return ok.hashCode();
 322  
     }
 323  
 
 324  
     /**
 325  
      * gets a commons-logging Log based on class name.
 326  
      *
 327  
      * @return a <code>Log</code> to write log to.
 328  
      */
 329  
     protected Log getLog()
 330  
     {
 331  0
         if (log == null)
 332  
         {
 333  0
             log = LogFactory.getLog(getClass().getName());
 334  
         }
 335  0
         return log;
 336  
     }
 337  
 
 338  
     /**
 339  
      * @see org.apache.torque.om.Persistent#save()
 340  
      */
 341  
     public abstract void save() throws Exception;
 342  
 
 343  
     /**
 344  
      * @see org.apache.torque.om.Persistent#save(String)
 345  
      */
 346  
     public abstract void save(String dbName) throws Exception;
 347  
 
 348  
     /**
 349  
      * @see org.apache.torque.om.Persistent#save(Connection)
 350  
      */
 351  
     public abstract void save(Connection con) throws Exception;
 352  
 
 353  
     /**
 354  
      * Retrieves the TableMap object related to this Table data.
 355  
      * Must be overridden in generated classes.  If BaseObject's
 356  
      * implementation is called it will throw an Error.
 357  
      *
 358  
      * @return The associated TableMap object.
 359  
      */
 360  
     public TableMap getTableMap() throws TorqueException
 361  
     {
 362  0
         throw new Error("BaseObject.getTableMap: " + NOT_IMPLEMENTED);
 363  
     }
 364  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.