[kaffe] CVS kaffe (robilad): Replaced GuardedObject by implementation from GNU Classpath

Kaffe CVS cvs-commits at kaffe.org
Wed Sep 22 01:15:02 PDT 2004


PatchSet 5205 
Date: 2004/09/22 08:11:06
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Replaced GuardedObject by implementation from GNU Classpath

2004-09-22  Dalibor Topic  <robilad at kaffe.org>

        * libraries/javalib/java/security/GuardedObject.java:
        Replaced by implementation from GNU Classpath.

Members: 
	ChangeLog:1.2760->1.2761 
	libraries/javalib/java/security/GuardedObject.java:1.1->1.2 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2760 kaffe/ChangeLog:1.2761
--- kaffe/ChangeLog:1.2760	Wed Sep 22 00:05:40 2004
+++ kaffe/ChangeLog	Wed Sep 22 08:11:06 2004
@@ -1,3 +1,8 @@
+2004-09-22  Dalibor Topic  <robilad at kaffe.org>
+
+	* libraries/javalib/java/security/GuardedObject.java:
+        Replaced by implementation from GNU Classpath.
+
 2004-09-21  Noa Resare  <noa at resare.com>
 
 	* libraries/clib/nio/FileChannelImpl.c
Index: kaffe/libraries/javalib/java/security/GuardedObject.java
diff -u kaffe/libraries/javalib/java/security/GuardedObject.java:1.1 kaffe/libraries/javalib/java/security/GuardedObject.java:1.2
--- kaffe/libraries/javalib/java/security/GuardedObject.java:1.1	Thu Jul 22 02:12:05 1999
+++ kaffe/libraries/javalib/java/security/GuardedObject.java	Wed Sep 22 08:11:09 2004
@@ -1,34 +1,120 @@
+/* GuardedObject.java -- An object protected by a Guard
+   Copyright (C) 1998, 2002 Free Software Foundation, Inc.
 
-/*
- * Java core library component.
- *
- * Copyright (c) 1999
- *	Archie L. Cobbs.  All rights reserved.
- * Copyright (c) 1999
- *	Transvirtual Technologies, Inc.  All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file.
- *
- * Author: Archie L. Cobbs <archie at whistle.com>
- */
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
 
 package java.security;
 
 import java.io.Serializable;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
 
-public class GuardedObject implements Serializable {
-	private final Object object;
-	private final Guard guard;
-
-	public GuardedObject(Object object, Guard guard) {
-		this.guard = guard;
-		this.object = object;
-	}
-
-	public Object getObject() throws SecurityException {
-		guard.checkGuard(object);
-		return object;
-	}
-}
-
+/**
+ * This class is an object that is guarded by a <code>Guard</code> object.
+ * The object that is being guarded is retrieved by a call to the only
+ * method in this class - <code>getObject</code>.  That method returns the
+ * guarded <code>Object</code> after first checking with the
+ * <code>Guard</code>.  If the <code>Guard</code> disallows access, an
+ * exception will be thrown.
+ *
+ * @author Aaron M. Renn <arenn at urbanophile.com>
+ * @since 1.1
+ * @status updated to 1.4
+ */
+public class GuardedObject implements Serializable
+{
+  /**
+   * Compatible with JDK 1.1+.
+   */
+  private static final long serialVersionUID = -5240450096227834308L;
+
+  /**
+   * This is the Guard that is protecting the object.
+   *
+   * @serial the guard
+   */
+  private final Guard guard;
+
+  /**
+   * This is the object that is being guarded.
+   *
+   * @serial the protected object
+   */
+  private final Object object;
+
+  /**
+   * This method initializes a new instance of <code>GuardedObject</code>
+   * that protects the specified <code>Object</code> using the specified
+   * <code>Guard</code>. A null guard means there are no restrictions on
+   * accessing the object.
+   *
+   * @param object the <code>Object</code> to guard
+   * @param guard the <code>Guard</code> that is protecting the object
+   */
+  public GuardedObject(Object object, Guard guard)
+  {
+    this.object = object;
+    this.guard = guard;
+  }
+
+  /**
+   * This method first call the <code>checkGuard</code> method on the
+   * <code>Guard</code> object protecting the guarded object.  If the
+   * <code>Guard</code> disallows access, an exception is thrown, otherwise
+   * the <code>Object</code> is returned.
+   *
+   * @return The object being guarded
+   * @throws SecurityException if access is denied
+   */
+  public Object getObject()
+  {
+    if (guard != null)
+      guard.checkGuard(object);
+    return object;
+  }
+
+  /**
+   * Ensures that serialization is legal, by checking the guard.
+   *
+   * @param s the stream to write to
+   * @throws IOException if the underlying stream fails
+   */
+  private void writeObject(ObjectOutputStream s) throws IOException
+  {
+    if (guard != null)
+      guard.checkGuard(object);
+    s.defaultWriteObject();
+  }
+} // class GuardedObject




More information about the kaffe mailing list