Package jdbm.helper

Examples of jdbm.helper.Tuple


    {
        // we must synchronize on the BTree while browsing
        synchronized ( btree )
        {
            TupleBrowser browser = btree.browse();
            Tuple tuple = new Tuple();

            while ( browser.getNext( tuple ) )
            {
                if ( tuple.getValue().equals( value ) )
                {
                    return ( true );
                }
            }
        }
View Full Code Here


     * Example main entrypoint.
     */
    public static void main( String[] args ) {
        RecordManager recman;
        long          recid;
        Tuple         tuple = new Tuple();
        TupleBrowser  browser;
        BTree         tree;
        Properties    props;

        props = new Properties();

        try {
            // open database and setup an object cache
            recman = RecordManagerFactory.createRecordManager( DATABASE, props );

            // try to reload an existing B+Tree
            recid = recman.getNamedObject( BTREE_NAME );
            if ( recid != 0 ) {
                tree = BTree.load( recman, recid );
                System.out.println( "Reloaded existing BTree with " + tree.size()
                                    + " famous people." );
            } else {
                // create a new B+Tree data structure and use a StringComparator
                // to order the records based on people's name.
                tree = BTree.createInstance( recman, new StringComparator() );
                recman.setNamedObject( BTREE_NAME, tree.getRecid() );
                System.out.println( "Created a new empty BTree" );
            }

            // insert people with their respective occupation
            System.out.println();
            for ( int i=0; i<people.length; i++ ) {
                System.out.println( "Insert: " + people[i] );
                tree.insert( people[ i ], occupations[ i ], false );
            }

            // make the data persistent in the database
            recman.commit();

            // show list of people with their occupation
            System.out.println();
            System.out.println( "Person                   Occupation       " );
            System.out.println( "------------------       ------------------" );

            // traverse people in order
            browser = tree.browse();
            while ( browser.getNext( tuple ) ) {
                print( tuple );
            }

            // traverse people in reverse order
            System.out.println();
            System.out.println( "Reverse order:" );
            browser = tree.browse( null ); // position browser at end of the list

            while ( browser.getPrevious( tuple ) ) {
                print( tuple );
            }



            // display people whose name start with PREFIX range
            System.out.println();
            System.out.println( "All people whose name start with '" + PREFIX + "':" );

            browser = tree.browse( PREFIX );
            while ( browser.getNext( tuple ) ) {
                String key = (String) tuple.getKey();
                if ( key.startsWith( PREFIX ) ) {
                    print( tuple );
                } else {
                    break;
                }
View Full Code Here

     * Get the largest prime number in the database.
     */
    public Long getLargestPrime()
        throws IOException
     {
        Tuple         tuple;
        TupleBrowser  browser;
        Long          largest = null;

        tuple = new Tuple();
        browser = _primes.browse( null );
        if ( browser.getPrevious( tuple ) ) {
            largest = (Long) tuple.getValue();
            System.out.println( "Largest prime: " + largest );
        } else {
            System.out.println( "No prime number in the database." );
        }
        return largest;
View Full Code Here

     * Returns true if a number is prime.
     */
    boolean isPrime( Long number )
        throws IOException
    {
        Tuple         tuple;
        TupleBrowser  browser;
        Long          largest;
        Long          current;

        if ( number.longValue() <= 0L ) {
            throw new IllegalArgumentException( "Number must be greater than zero" );
        }
        if ( number.longValue() == 1 ) {
            return true;
        }
        tuple = new Tuple();
        browser = _primes.browse();
        while ( browser.getNext( tuple ) ) {
            current = (Long) tuple.getValue();
            if ( current.longValue() != 1 && ( number.longValue() % current.longValue() ) == 0 ) {
                // not a prime because it is divisibe by a prime
                return false;
            }
        }          
View Full Code Here

     * Display a number of random prime numbers.
     */
    void random( int count )
        throws IOException
    {
        Tuple         tuple;
        TupleBrowser  browser;
        Long          largest;
        Long          number;

        tuple = new Tuple();
        largest = getLargestPrime();

        System.out.println( "Looking up " + count + " random primes...." );
        long start = System.currentTimeMillis();
        for ( int i=0; i<count; i++ ) {
            number = new Long( random( 0, largest.longValue() ) );
            browser = _primes.browse( number );
            if ( browser.getNext( tuple ) ) {
                number = (Long) tuple.getValue();
                System.out.print( number );
                System.out.print( ", " );
            }
        }
        long stop = System.currentTimeMillis();
View Full Code Here

      }
   }

   private Set getChildrenNames0(Fqn name) throws IOException {
      TupleBrowser browser = tree.browse(name);
      Tuple t = new Tuple();

      if (browser.getNext(t)) {
         if (!t.getValue().equals(NODE)) {
            log.trace(" not a node");
            return null;
         }
      } else {
         log.trace(" no nodes");
         return null;
      }

      Set set = new HashSet();

      // Want only /a/b/c/X nodes
      int depth = name.size() + 1;
      while (browser.getNext(t)) {
         Fqn fqn = (Fqn)t.getKey();
         int size = fqn.size();
         if (size < depth)
            break;
         if (size == depth && t.getValue().equals(NODE))
            set.add(fqn.getLast());
      }

      if (set.isEmpty())
         return null;
View Full Code Here

            log.trace("get, no node: " + name);
         return null;
      }

      Fqn keys = keys(name);
      Tuple t = new Tuple();
      Map map = new HashMap();

      synchronized (tree) {
         TupleBrowser browser = tree.browse(keys);
         while (browser.getNext(t)) {
            Fqn fqn = (Fqn)t.getKey();
            if (!fqn.isChildOf(keys))
               break;
            Object k = fqn.getLast();
            Object v = t.getValue();
            map.put(nullUnmask(k), nullUnmask(v));
         }
      }

      if (log.isTraceEnabled())
View Full Code Here

   {
      if (log.isTraceEnabled())
         log.trace("erase " + name + " self=" + self);
      synchronized (tree) {
         TupleBrowser browser = tree.browse(name);
         Tuple t = new Tuple();
         if (browser.getNext(t)) {
            if (self)
               tree.remove(t.getKey());
         }
         while (browser.getNext(t)) {
            Fqn fqn = (Fqn)t.getKey();
            if (!fqn.isChildOf(name))
               break;
            tree.remove(fqn);
         }
      }
View Full Code Here

         ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
         ObjectOutputStream oos = new ObjectOutputStream(baos);
  
         synchronized (tree) {
            TupleBrowser browser = tree.browse(subtree);
            Tuple t = new Tuple();
            while (browser.getNext(t)) {
               Fqn fqn = (Fqn)t.getKey();
               if (!fqn.isChildOrEquals(subtree))
                  break;
               oos.writeObject(fqn);
               oos.writeObject(t.getValue());
            }
         }
         oos.flush();
         return baos.toByteArray();
      }
View Full Code Here

   /**
    * Dumps the tree past the key to debug.
    */
   public void dump(Object key) throws IOException {
      TupleBrowser browser = tree.browse(key);
      Tuple t = new Tuple();
      log.debug("contents: " + key);
      while (browser.getNext(t)) {
         log.debug(t.getKey() + "\t" + t.getValue());
      }
      log.debug("");
   }
View Full Code Here

TOP

Related Classes of jdbm.helper.Tuple

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.