01: /*
02: *
03: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
04: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU General Public License version
08: * 2 only, as published by the Free Software Foundation.
09: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * General Public License version 2 for more details (a copy is
14: * included at /legal/license.txt).
15: *
16: * You should have received a copy of the GNU General Public License
17: * version 2 along with this work; if not, write to the Free Software
18: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
22: * Clara, CA 95054 or visit www.sun.com if you need additional
23: * information or have any questions.
24: */
25:
26: package com.sun.pisces;
27:
28: class NativeFinalizer {
29: private NativeFinalization guardedObject;
30:
31: private static final class RendererNativeFinalizer extends
32: NativeFinalizer {
33: public RendererNativeFinalizer(PiscesRenderer renderer) {
34: super (renderer);
35: }
36:
37: private native void finalize();
38: };
39:
40: private static final class SurfaceNativeFinalizer extends
41: NativeFinalizer {
42: public SurfaceNativeFinalizer(AbstractSurface surface) {
43: super (surface);
44: }
45:
46: private native void finalize();
47: };
48:
49: private NativeFinalizer(NativeFinalization forObject) {
50: guardedObject = forObject;
51: initialize();
52: }
53:
54: public static NativeFinalizer createInstance(PiscesRenderer renderer) {
55: return new RendererNativeFinalizer(renderer);
56: }
57:
58: public static NativeFinalizer createInstance(AbstractSurface surface) {
59: return new SurfaceNativeFinalizer(surface);
60: }
61:
62: private native final void initialize();
63: }
|