summaryrefslogtreecommitdiff
path: root/java/demo/Freeze/library/LibraryI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/demo/Freeze/library/LibraryI.java')
-rw-r--r--java/demo/Freeze/library/LibraryI.java255
1 files changed, 0 insertions, 255 deletions
diff --git a/java/demo/Freeze/library/LibraryI.java b/java/demo/Freeze/library/LibraryI.java
deleted file mode 100644
index 6bdd3a61dee..00000000000
--- a/java/demo/Freeze/library/LibraryI.java
+++ /dev/null
@@ -1,255 +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.*;
-
-class LibraryI extends _LibraryDisp
-{
- @Override
- public synchronized BookPrx
- createBook(BookDescription description, Ice.Current current)
- throws DatabaseException, BookExistsException
- {
- BookPrx book = isbnToBook(description.isbn, current.adapter);
-
- try
- {
- book.ice_ping();
-
- //
- // The book already exists.
- //
- throw new BookExistsException();
- }
- catch(Ice.ObjectNotExistException e)
- {
- //
- // Book doesn't exist, ignore the exception.
- //
- }
-
- //
- // Create a new book Servant.
- //
- BookI bookI = new BookI(this);
- bookI.description = description;
-
- Ice.Identity ident = createBookIdentity(description.isbn);
-
- //
- // Create a new Ice Object in the evictor, using the new
- // identity and the new Servant.
- //
- // This can throw EvictorDeactivatedException (which indicates
- // an internal error). The exception is currently ignored.
- //
- _evictor.add(bookI, ident);
-
- try
- {
- //
- // Add the isbn number to the authors map.
- //
- String[] isbnSeq = _authors.get(description.authors);
- int length = (isbnSeq == null) ? 0 : isbnSeq.length;
- String[] newIsbnSeq = new String[length+1];
-
- if(isbnSeq != null)
- {
- System.arraycopy(isbnSeq, 0, newIsbnSeq, 0, length);
- }
- newIsbnSeq[length] = description.isbn;
-
- _authors.fastPut(description.authors, newIsbnSeq);
-
- return book;
- }
- catch(Freeze.DatabaseException ex)
- {
- DatabaseException e = new DatabaseException();
- e.message = ex.message;
- throw e;
- }
- }
-
- //
- // No locking is necessary since no internal mutable state is
- // accessed.
- //
- @Override
- public BookPrx
- findByIsbn(String isbn, Ice.Current current)
- throws DatabaseException
- {
- try
- {
- BookPrx book = isbnToBook(isbn, current.adapter);
- book.ice_ping();
-
- return book;
- }
- catch(Ice.ObjectNotExistException ex)
- {
- //
- // Book doesn't exist, return a null proxy.
- //
- return null;
- }
- }
-
- @Override
- public synchronized BookPrx[]
- findByAuthors(String authors, Ice.Current current)
- throws DatabaseException
- {
- try
- {
- //
- // Lookup all books that match the given authors, and
- // return them to the caller.
- //
- String[] isbnSeq = _authors.get(authors);
-
- int length = (isbnSeq == null) ? 0 : isbnSeq.length;
- BookPrx[] books = new BookPrx[length];
-
- if(isbnSeq != null)
- {
- for(int i = 0; i < length; ++i)
- {
- books[i] = isbnToBook(isbnSeq[i], current.adapter);
- }
- }
-
- return books;
- }
- catch(Freeze.DatabaseException ex)
- {
- DatabaseException e = new DatabaseException();
- e.message = ex.message;
- throw e;
- }
- }
-
- @Override
- public void
- setEvictorSize(int size, Ice.Current current)
- throws DatabaseException
- {
- //
- // No synchronization necessary, _evictor is immutable.
- //
- _evictor.setSize(size);
- }
-
- @Override
- public void
- shutdown(Ice.Current current)
- {
- current.adapter.getCommunicator().shutdown();
- }
-
- protected synchronized void
- remove(BookDescription description)
- throws DatabaseException
- {
- try
- {
- String[] isbnSeq = _authors.get(description.authors);
-
- assert isbnSeq != null;
-
- int i;
- for(i = 0; i < isbnSeq.length; ++i)
- {
- if(isbnSeq[i].equals(description.isbn))
- {
- break;
- }
- }
-
- assert i < isbnSeq.length;
-
- if(isbnSeq.length == 1)
- {
- //
- // If there are no further associated isbn numbers then remove
- // the record.
- //
- _authors.fastRemove(description.authors);
- }
- else
- {
- //
- // Remove the isbn number from the sequence and write
- // back the new record.
- //
- String[] newIsbnSeq = new String[isbnSeq.length-1];
- System.arraycopy(isbnSeq, 0, newIsbnSeq, 0, i);
- if(i < isbnSeq.length - 1)
- {
- System.arraycopy(isbnSeq, i+1, newIsbnSeq, i, isbnSeq.length - i - 1);
- }
-
- _authors.fastPut(description.authors, newIsbnSeq);
- }
-
- //
- // This can throw EvictorDeactivatedException (which
- // indicates an internal error). The exception is
- // currently ignored.
- //
- _evictor.remove(createBookIdentity(description.isbn));
- }
- catch(Freeze.DatabaseException ex)
- {
- DatabaseException e = new DatabaseException();
- e.message = ex.message;
- throw e;
- }
- }
-
- LibraryI(Ice.Communicator communicator, String envName, String dbName, Freeze.Evictor evictor)
- {
- _evictor = evictor;
- _connection = Freeze.Util.createConnection(communicator, envName);
- _authors = new StringIsbnSeqDict(_connection, dbName, true);
- }
-
- void
- close()
- {
- _authors.close();
- _connection.close();
- }
-
- private Ice.Identity
- createBookIdentity(String isbn)
- {
- //
- // Note that the identity category is important since the
- // locator was installed for the category 'book'.
- //
- Ice.Identity ident = new Ice.Identity();
- ident.category = "book";
- ident.name = isbn;
-
- return ident;
- }
-
- private BookPrx
- isbnToBook(String isbn, Ice.ObjectAdapter adapter)
- {
- return BookPrxHelper.uncheckedCast(adapter.createProxy(createBookIdentity(isbn)));
- }
-
- private Freeze.Evictor _evictor;
- private Freeze.Connection _connection;
- private StringIsbnSeqDict _authors;
-}