summaryrefslogtreecommitdiff
path: root/java/demo/Database/library/LibraryI.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
commit9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch)
tree5016567c58c81f5654e9d01935e199c6bf4761d2 /java/demo/Database/library/LibraryI.java
parentVS add-in & build updates: (diff)
downloadice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.bz2
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.xz
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.zip
Removed demos.
Moved demoscript to distribution.
Diffstat (limited to 'java/demo/Database/library/LibraryI.java')
-rw-r--r--java/demo/Database/library/LibraryI.java383
1 files changed, 0 insertions, 383 deletions
diff --git a/java/demo/Database/library/LibraryI.java b/java/demo/Database/library/LibraryI.java
deleted file mode 100644
index 39594b4b110..00000000000
--- a/java/demo/Database/library/LibraryI.java
+++ /dev/null
@@ -1,383 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-import Demo.*;
-
-//
-// This is a per-session library object.
-//
-class LibraryI extends _LibraryDisp
-{
- @Override
- public void
- queryByIsbn(String isbn, int n, BookDescriptionSeqHolder first, Ice.IntHolder nrows,
- BookQueryResultPrxHolder result, Ice.Current current)
- {
- SQLRequestContext context = SQLRequestContext.getCurrentContext();
- assert context != null;
-
- reapQueries();
-
- try
- {
- java.sql.PreparedStatement stmt = context.prepareStatement("SELECT COUNT(*) FROM books WHERE isbn LIKE ?");
- stmt.setString(1, isbn + "%");
- java.sql.ResultSet rs = stmt.executeQuery();
- boolean next = rs.next();
- assert next;
- nrows.value = rs.getInt(1);
- if(nrows.value == 0)
- {
- return;
- }
-
- stmt = context.prepareStatement("SELECT * FROM books WHERE isbn LIKE ?");
- stmt.setString(1, isbn + "%");
- rs = stmt.executeQuery();
- next = rs.next();
- assert next;
-
- first.value = new java.util.LinkedList<BookDescription>();
- next = true;
- for(int i = 0; i < n && next; ++i)
- {
- first.value.add(BookI.extractDescription(context, rs, current.adapter));
- next = rs.next();
- }
- if(next)
- {
- BookQueryResultI impl = new BookQueryResultI(context, rs, current.adapter);
- result.value = BookQueryResultPrxHelper.uncheckedCast(current.adapter.addWithUUID(impl));
- add(result.value, impl);
- }
- }
- catch(java.sql.SQLException e)
- {
- JDBCException ex = new JDBCException();
- ex.initCause(e);
- throw ex;
- }
- }
-
- @Override
- public void
- queryByAuthor(String author, int n, BookDescriptionSeqHolder first, Ice.IntHolder nrows,
- BookQueryResultPrxHolder result, Ice.Current current)
- {
- SQLRequestContext context = SQLRequestContext.getCurrentContext();
- assert context != null;
-
- reapQueries();
-
- try
- {
- // Find each of the authors.
- java.sql.PreparedStatement stmt = context.prepareStatement("SELECT * FROM authors WHERE name LIKE ?");
- stmt.setString(1, "%" + author + "%");
- java.sql.ResultSet rs = stmt.executeQuery();
- if(!rs.next())
- {
- // No results are available.
- nrows.value = 0;
- return;
- }
-
- // Build a query that finds all books by these authors.
- StringBuilder sb = new StringBuilder(128);
- sb.append("(");
- boolean front = true;
- do
- {
- if(!front)
- {
- sb.append(" OR ");
- }
- front = false;
- sb.append("authors_books.author_id=");
- sb.append(rs.getInt("id"));
- }
- while(rs.next());
- sb.append(")");
-
- stmt = context.prepareStatement(
- "SELECT COUNT(DISTINCT ID) FROM books INNER JOIN authors_books ON books.id=authors_books.book_id AND "
- + sb.toString());
- rs = stmt.executeQuery();
- boolean next = rs.next();
- assert next;
- nrows.value = rs.getInt(1);
- if(nrows.value == 0)
- {
- return;
- }
-
- // Execute the query.
- stmt = context.prepareStatement(
- "SELECT DISTINCT ID, ISBN, TITLE, RENTER_ID FROM books INNER JOIN authors_books ON " +
- "books.id=authors_books.book_id AND " + sb.toString());
- rs = stmt.executeQuery();
- next = rs.next();
- assert next;
-
- next = true;
- first.value = new java.util.LinkedList<BookDescription>();
- for(int i = 0; i < n && next; ++i)
- {
- first.value.add(BookI.extractDescription(context, rs, current.adapter));
- next = rs.next();
- }
-
- if(next)
- {
- BookQueryResultI impl = new BookQueryResultI(context, rs, current.adapter);
- result.value = BookQueryResultPrxHelper.uncheckedCast(current.adapter.addWithUUID(impl));
- add(result.value, impl);
- }
- }
- catch(java.sql.SQLException e)
- {
- JDBCException ex = new JDBCException();
- ex.initCause(e);
- throw ex;
- }
- }
-
- @Override
- public void
- queryByTitle(String title, int n, BookDescriptionSeqHolder first, Ice.IntHolder nrows,
- BookQueryResultPrxHolder result, Ice.Current current)
- {
- SQLRequestContext context = SQLRequestContext.getCurrentContext();
- assert context != null;
-
- reapQueries();
-
- try
- {
- java.sql.PreparedStatement stmt = context.prepareStatement("SELECT COUNT(*) FROM books WHERE title LIKE ?");
- stmt.setString(1, "%" + title + "%");
- java.sql.ResultSet rs = stmt.executeQuery();
- boolean next = rs.next();
- assert next;
- nrows.value = rs.getInt(1);
- if(nrows.value == 0)
- {
- return;
- }
-
- stmt = context.prepareStatement("SELECT * FROM books WHERE title LIKE ?");
- stmt.setString(1, "%" + title + "%");
- rs = stmt.executeQuery();
- next = rs.next();
- assert next;
-
- first.value = new java.util.LinkedList<BookDescription>();
- next = true;
- for(int i = 0; i < n && next; ++i)
- {
- first.value.add(BookI.extractDescription(context, rs, current.adapter));
- next = rs.next();
- }
- if(next)
- {
- BookQueryResultI impl = new BookQueryResultI(context, rs, current.adapter);
- result.value = BookQueryResultPrxHelper.uncheckedCast(current.adapter.addWithUUID(impl));
- add(result.value, impl);
- }
- }
- catch(java.sql.SQLException e)
- {
- JDBCException ex = new JDBCException();
- ex.initCause(e);
- throw ex;
- }
- }
-
- @Override
- public BookPrx
- createBook(String isbn, String title, java.util.List<String> authors, Ice.Current current)
- throws BookExistsException, InvalidISBNException
- {
- SQLRequestContext context = SQLRequestContext.getCurrentContext();
- assert context != null;
- try
- {
- java.sql.PreparedStatement stmt = context.prepareStatement("SELECT * FROM books WHERE isbn = ?");
- stmt.setString(1, isbn);
- java.sql.ResultSet rs = stmt.executeQuery();
- if(rs.next())
- {
- throw new BookExistsException();
- }
-
- if(isbn.length() > 13)
- {
- throw new InvalidISBNException();
- }
-
- //
- // First convert the authors string to an id set.
- //
- java.util.List<Integer> authIds = new java.util.LinkedList<Integer>();
- for(String author : authors)
- {
- Integer id;
- stmt = context.prepareStatement("SELECT * FROM authors WHERE name = ?");
- stmt.setString(1, author);
- rs = stmt.executeQuery();
- if(rs.next())
- {
- // If there is a result, then the database
- // already contains this author.
- id = rs.getInt(1);
- assert !rs.next();
- }
- else
- {
- // Otherwise, create a new author record.
- stmt = context.prepareStatement("INSERT INTO authors (name) VALUES(?)",
- java.sql.Statement.RETURN_GENERATED_KEYS);
- stmt.setString(1, author);
- int count = stmt.executeUpdate();
- assert count == 1;
- rs = stmt.getGeneratedKeys();
- boolean next = rs.next();
- assert next;
- id = rs.getInt(1);
- }
-
- // Add the new id to the list of ids.
- authIds.add(id);
- }
-
- // Create the new book.
- stmt = context.prepareStatement("INSERT INTO books (isbn, title) VALUES(?, ?)",
- java.sql.Statement.RETURN_GENERATED_KEYS);
- stmt.setString(1, isbn);
- stmt.setString(2, title);
- int count = stmt.executeUpdate();
- assert count == 1;
-
- rs = stmt.getGeneratedKeys();
- boolean next = rs.next();
- assert next;
- Integer bookId = rs.getInt(1);
-
- // Create new authors_books records.
- for(Integer i : authIds)
- {
- stmt = context.prepareStatement("INSERT INTO authors_books (book_id, author_id) VALUES(?, ?)");
- stmt.setInt(1, bookId);
- stmt.setInt(2, i);
- count = stmt.executeUpdate();
- assert count == 1;
- }
-
- return BookPrxHelper.uncheckedCast(current.adapter.createProxy(BookI.createIdentity(bookId)));
- }
- catch(java.sql.SQLException e)
- {
- JDBCException ex = new JDBCException();
- ex.initCause(e);
- throw ex;
- }
- }
-
- LibraryI()
- {
- }
-
- synchronized public void
- destroy()
- {
- if(_destroyed)
- {
- return;
- }
- _destroyed = true;
- for(QueryProxyPair p : _queries)
- {
- try
- {
- p.proxy.destroy();
- }
- catch(Ice.ObjectNotExistException e)
- {
- // Ignore, it could have already been destroyed.
- }
- }
- }
-
- synchronized public void
- shutdown()
- {
- if(_destroyed)
- {
- return;
- }
- _destroyed = true;
-
- // Shutdown each of the associated query objects.
- for(QueryProxyPair p : _queries)
- {
- p.impl.shutdown();
- }
- }
-
- synchronized private void
- add(BookQueryResultPrx proxy, BookQueryResultI impl)
- {
- // If the session has been destroyed, then destroy the book
- // result, and raise an ObjectNotExistException.
- if(_destroyed)
- {
- proxy.destroy();
- throw new Ice.ObjectNotExistException();
- }
- _queries.add(new QueryProxyPair(proxy, impl));
- }
-
- synchronized private void
- reapQueries()
- {
- if(_destroyed)
- {
- throw new Ice.ObjectNotExistException();
- }
-
- java.util.Iterator<QueryProxyPair> p = _queries.iterator();
- while(p.hasNext())
- {
- QueryProxyPair pair = p.next();
- try
- {
- pair.proxy.ice_ping();
- }
- catch(Ice.ObjectNotExistException e)
- {
- p.remove();
- }
- }
- }
-
- static class QueryProxyPair
- {
- QueryProxyPair(BookQueryResultPrx p, BookQueryResultI i)
- {
- proxy = p;
- impl = i;
- }
-
- BookQueryResultPrx proxy;
- BookQueryResultI impl;
- }
-
- private java.util.List<QueryProxyPair> _queries = new java.util.LinkedList<QueryProxyPair>();
- private boolean _destroyed = false;
-}