KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > core > exceptions > handler > IHandler


1 /*
2 * ################################################################
3 *
4 * ProActive: The Java(TM) library for Parallel, Distributed,
5 * Concurrent computing with Security and Mobility
6 *
7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis
8 * Contact: proactive-support@inria.fr
9 *
10 * This library is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU Lesser General Public
12 * License as published by the Free Software Foundation; either
13 * version 2.1 of the License, or any later version.
14 *
15 * This library is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * Lesser General Public License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public
21 * License along with this library; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23 * USA
24 *
25 * Initial developer(s): The ProActive Team
26 * http://www.inria.fr/oasis/ProActive/contacts.html
27 * Contributor(s):
28 *
29 * ################################################################
30 */

31 package org.objectweb.proactive.core.exceptions.handler;
32
33 import org.objectweb.proactive.core.exceptions.NonFunctionalException;
34
35
36 /**
37  * Interface for handlers of Non Functional Exceptions
38  *
39  * @author ProActive Team
40  * @version 1.0, 2002/07/08
41  * @since ProActive 0.9.3
42  *
43  */

44 public interface IHandler {
45
46     // Definition of different level ID used to classify handler
47
/**
48      * Default level is static and initialized in core of applications. This level
49      * provide a basic handling strategy for every non-functional exception.
50      */

51     static public int ID_defaultLevel = 0;
52     /**
53      * Virtual Machine level is the first level created dynamcally. It offers the
54      * possibility to define a general handling behavior for every virtual machine
55      * environment. In the scope of distributed application, it's pretty useful with
56      * client/server application which required different recovery mechanisms.
57      */

58     static public int ID_VMLevel = 1;
59     /**
60      * Remote and Mobile Object level gives the opportunity to associated more
61      * specific handlers to remote objects. Nevertheless, we have to take into
62      * account the mobility of such objects. Handlers should migrate along with
63      * their associated entity.
64      */

65     static public int ID_activeObjectLevel = 2;
66     /**
67      * Proxy level is used to define reliable strategies for references to active objects.
68      */

69     static public int ID_proxyLevel = 3;
70     /**
71      * Future level is highly used with asynchronous remote method calls. It appears
72      * indeed that most of the failure occur during such calls.
73      */

74     static public int ID_futureLevel = 4;
75     /**
76      * Code level allows temporary handlers in the code. We keep such a level to let
77      * some functional treatments of non functional exceptions possible.
78      */

79     static public int ID_codeLevel = 5;
80
81     /**
82      * Is the exception reliable for the handler ?
83      * @param e The exception checked for handler reliability
84      */

85     public boolean isHandling(NonFunctionalException e);
86
87     /**
88      * Provide a treatment for the handled exception(s)
89      * @param e The exception to be handled
90      */

91     public void handle(NonFunctionalException e);
92 }
93
Popular Tags