UniFileRecordNotFound

From Pickwiki
Jump to navigationJump to search

Here's a sample of the code I use in the "real" DAO's:

/**
    * @param  key the key to the record you wish to read
    * @return                   An [[AddressView]] object, or null if
    * the key is null or blank
    * @exception  DAOException  thrown if there is a problem other than [[RecordNotFound]]
    */
   public [[AddressView]] read( String key, Object conn ) throws DAOException
   {
      [[AddressView]] address = new [[AddressViewImpl]]();
      address.setKey( key );

      if ( key == null || key.equals( "" ) ) {
         log.debug( "read: key is null or blank, returning null [[AddressView]]" );
         return null;
      }

      try {
         log.debug( "readAddress: key = [" + key + "]" );

         [[UniSession]] uSession;
         [[UniFile]] uFile;
         [[UniString]] uString;
         [[UniDynArray]] udArray;

         uSession = ([[UniSession]]) conn;

         uFile = uSession.openFile( "ADDRESS" );

         try {
            uString = uFile.read( key );
         } catch ( [[UniFileException]] ex ) {
            if ( ex.get[[ErrorCode]]() == [[UniObjectsTokens]].[[UVE_RNF]] ) {
               log.debug( "read: record not found, returning immediately" );
               return address;
            } else {
               log.debug( "read: re-throwing [[UniFileException]] other than [[RecordNotFound]]" );
               throw ex;
            }
         }

         uFile.close();

         udArray = new [[UniDynArray]]( uString );

         address.set[[ZipCode]]( udArray.extract( 1 ).toString() );
         address.setState( udArray.extract( 2 ).toString() );
         address.setCity( udArray.extract( 3 ).toString() );
         address.set[[AddressLines]]( toList( udArray, 5 ) );

      } catch ( [[UniException]] ex ) {
         throw new DAOException( ex );
      }

      return address;
   }

-- Wendy Smoak [email protected]