AppleImpl.java revision 0
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift/*
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift *
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * This code is free software; you can redistribute it and/or modify it
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * under the terms of the GNU General Public License version 2 only, as
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * published by the Free Software Foundation.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift *
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * This code is distributed in the hope that it will be useful, but WITHOUT
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * version 2 for more details (a copy is included in the LICENSE file that
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * accompanied this code).
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift *
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * You should have received a copy of the GNU General Public License version
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * 2 along with this work; if not, write to the Free Software Foundation,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift *
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * CA 95054 USA or visit www.sun.com if you need additional information or
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * have any questions.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift */
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport java.rmi.RemoteException;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport java.rmi.server.UnicastRemoteObject;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport java.util.logging.Logger;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftimport java.util.logging.Level;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift/**
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * The AppleImpl class implements the behavior of the remote "apple"
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * objects exported by the application.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift */
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swiftpublic class AppleImpl
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift extends UnicastRemoteObject
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift implements Apple
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift private static Logger logger = Logger.getLogger("reliability.apple");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift private String name;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public AppleImpl(String name) throws RemoteException {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift this.name = name;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift /**
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Receive an array of AppleEvent objects.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift */
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void notify(AppleEvent[] events) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift try {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift String threadName = Thread.currentThread().getName();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.FINEST,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift threadName + ": " + toString() + ".notify: BEGIN");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift for (int i = 0; i < events.length; ++ i) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.FINEST,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift threadName + ": " + toString() +
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift ".notify(): events[" + i + "] = " +
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift events[i].toString());
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.FINEST,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift threadName + ": " + toString() + ".notify(): END");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift } catch (RuntimeException e) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.SEVERE, toString() + ".notify():", e);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift throw e;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift /**
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Return a newly created and exported orange implementation.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift */
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public Orange newOrange(String name) throws RemoteException {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift try {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift String threadName = Thread.currentThread().getName();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.FINEST,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift threadName + ": " + toString() +
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift ".newOrange(" + name + "): BEGIN");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift Orange orange = new OrangeImpl(name);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.FINEST,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift threadName + ": " + toString() +
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift ".newOrange(" + name + "): END");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return orange;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift } catch (RuntimeException e) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift logger.log(Level.SEVERE, toString() + ".newOrange():", e);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift throw e;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public String toString() {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return name;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift}
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift