Coverage Report - net.wotonomy.test.TestDataSource
 
Classes in this File Line Coverage Branch Coverage Complexity
TestDataSource
0% 
0% 
1.333
 
 1  
 package net.wotonomy.test;
 2  
 
 3  
 import net.wotonomy.control.EOClassDescription;
 4  
 import net.wotonomy.control.EODataSource;
 5  
 import net.wotonomy.control.EOEditingContext;
 6  
 import net.wotonomy.control.EOFetchSpecification;
 7  
 import net.wotonomy.foundation.NSArray;
 8  
 
 9  
 /**
 10  
 * A custom DataSource that works with 
 11  
 * the datastore package for persistence.
 12  
 */
 13  
 public class TestDataSource extends EODataSource
 14  
 {
 15  
     private EOEditingContext context;
 16  
     private Object source;
 17  
     private String key;
 18  
     
 19  
         public TestDataSource()
 20  
         {
 21  0
         this( Test.editingContext );
 22  0
         }
 23  
     
 24  0
         public TestDataSource( EOEditingContext aContext )
 25  0
         {
 26  0
         context = aContext;
 27  0
         }
 28  
     
 29  
     public EOEditingContext editingContext()
 30  
     {
 31  0
         return context;
 32  
     }
 33  
         
 34  
     /**
 35  
     * This implementation does nothing.
 36  
     */
 37  
     public void insertObject ( Object anObject )
 38  
         {
 39  
         // creates are handled by createObject().
 40  0
         }
 41  
 
 42  
     /**
 43  
     * Deletes the specified object from this data source.
 44  
     */
 45  
     public void deleteObject ( Object anObject )
 46  
         {
 47  0
         editingContext().deleteObject( anObject );
 48  0
         }
 49  
 
 50  
     /**
 51  
     * Returns a List containing the objects in this
 52  
     * data source.  This implementation returns all
 53  
         * TestObjects that have been persisted to the 
 54  
         * datastore in the data directory.
 55  
     */
 56  
     public NSArray fetchObjects ()
 57  
     {
 58  0
         if ( source == null )
 59  
         {
 60  0
             NSArray result = editingContext().objectsWithFetchSpecification( 
 61  0
                 new EOFetchSpecification() );
 62  0
             if ( result.size() > 0 )
 63  
             {
 64  0
                 result = new NSArray( result.objectAtIndex( 0 ) );
 65  
 //result.add( result.objectAtIndex( 0 ) );
 66  
             }
 67  0
             return result;
 68  
         }
 69  
         else
 70  
         {
 71  0
             return new NSArray( 
 72  0
                 ((TestObject)source).getChildList() );
 73  
         }
 74  
     }
 75  
 
 76  
     /**
 77  
     * Returns a data source that is capable of
 78  
     * manipulating objects of the type returned by 
 79  
     * applying the specified key to objects 
 80  
     * vended by this data source.
 81  
     * @see #qualifyWithRelationshipKey
 82  
     */
 83  
     public EODataSource 
 84  
         dataSourceQualifiedByKey ( String aKey )
 85  
         {
 86  0
                 return new TestDataSource( editingContext() );        
 87  
         }
 88  
 
 89  
     /**
 90  
     * Restricts this data source to vend those 
 91  
     * objects that are associated with the specified 
 92  
     * key on the specified object.
 93  
     */
 94  
     public void 
 95  
         qualifyWithRelationshipKey ( 
 96  
         String aKey, Object anObject )
 97  
         {
 98  0
         key = aKey;
 99  0
         source = anObject;
 100  0
         }
 101  
 
 102  
     /**
 103  
     * Returns the description of the class of the
 104  
     * objects that is vended by this data source,
 105  
     * or null if this cannot be determined.
 106  
         * This implementation returns TestObject.
 107  
     */
 108  
     public EOClassDescription 
 109  
         classDescriptionForObjects ()
 110  
     {
 111  0
         return EOClassDescription.classDescriptionForClass( 
 112  0
                         TestObject.class );
 113  
     }
 114  
 
 115  
 }