[Patch] cleaning up inner classes

Michael Koch konqueror@gmx.de
Sun Feb 20 22:18:00 GMT 2005


Hi list,


I would like to merge the attached patch from GNU classpath. It moves
some classes which were located in other classes' java files into the
classes itself as inner classes. A full bootstrap was done with no
new regression in mauve.

Ok to commit to trunk ?


Michael

2005-02-03  Dalibor Topic  <robilad@kaffe.org>

	* libraries/javalib/gnu/regexp/RE.java,
	libraries/javalib/java/io/ObjectInputStream.java,
	libraries/javalib/java/security/AllPermission.java,
	libraries/javalib/java/security/BasicPermission.java,
	libraries/javalib/java/security/Permissions.java,
	libraries/javalib/java/text/MessageFormat.java:
	Made 'inner' classes real public static inner classes,
	and made them final where possible, or removed them
	where unused.

-------------- next part --------------
Index: gnu/regexp/RE.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/regexp/RE.java,v
retrieving revision 1.2
diff -u -r1.2 RE.java
--- gnu/regexp/RE.java	25 Sep 2004 19:04:34 -0000	1.2
+++ gnu/regexp/RE.java	20 Feb 2005 11:30:00 -0000
@@ -43,15 +43,6 @@
 import java.util.ResourceBundle;
 import java.util.Vector;
 
-class IntPair implements Serializable {
-  public int first, second;
-}
-
-class CharUnit implements Serializable {
-  public char ch;
-  public boolean bk;
-}
-
 /**
  * RE provides the user interface for compiling and matching regular
  * expressions.
@@ -119,6 +110,16 @@
  */
 
 public class RE extends REToken {
+
+  private static final class IntPair implements Serializable {
+    public int first, second;
+  }
+
+  private static final class CharUnit implements Serializable {
+    public char ch;
+    public boolean bk;
+  }
+
   // This String will be returned by getVersion()
   private static final String VERSION = "1.1.5-dev";
 
Index: java/io/ObjectInputStream.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/io/ObjectInputStream.java,v
retrieving revision 1.39
diff -u -r1.39 ObjectInputStream.java
--- java/io/ObjectInputStream.java	17 Feb 2005 07:48:32 -0000	1.39
+++ java/io/ObjectInputStream.java	20 Feb 2005 11:30:00 -0000
@@ -1809,7 +1809,6 @@
    * @param sm SecurityManager instance which should be called.
    * @return The current class loader in the calling stack.
    */
-
   private static native ClassLoader currentClassLoader (SecurityManager sm);
   
   private native ClassLoader getCallersClassLoader();
@@ -1879,7 +1878,7 @@
   private int depth = 0;
 
   private void dumpElement (String msg)
-  {	
+  {
     System.out.print(msg);
   }
   
@@ -1898,24 +1897,24 @@
 	System.loadLibrary ("javaio");
       }
   }
-}
-
 
-// used to keep a prioritized list of object validators
-class ValidatorAndPriority implements Comparable
-{
-  int priority;
-  ObjectInputValidation validator;
-
-  ValidatorAndPriority (ObjectInputValidation validator, int priority)
+  // used to keep a prioritized list of object validators
+  private static final class ValidatorAndPriority implements Comparable
   {
-    this.priority = priority;
-    this.validator = validator;
-  }
+    int priority;
+    ObjectInputValidation validator;
 
-  public int compareTo (Object o)
-  {
-    ValidatorAndPriority vap = (ValidatorAndPriority)o;
-    return this.priority - vap.priority;
+    ValidatorAndPriority (ObjectInputValidation validator, int priority)
+    {
+      this.priority = priority;
+      this.validator = validator;
+    }
+
+    public int compareTo (Object o)
+    {
+      ValidatorAndPriority vap = (ValidatorAndPriority)o;
+      return this.priority - vap.priority;
+    }
   }
 }
+
Index: java/security/AllPermission.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/security/AllPermission.java,v
retrieving revision 1.5
diff -u -r1.5 AllPermission.java
--- java/security/AllPermission.java	21 Oct 2004 20:21:03 -0000	1.5
+++ java/security/AllPermission.java	20 Feb 2005 11:30:00 -0000
@@ -1,5 +1,5 @@
 /* AllPermission.java -- Permission to do anything
-   Copyright (C) 1998, 2001, 2002, 2004  Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001, 2002, 2004, 2005  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -135,64 +135,64 @@
   {
     return new AllPermissionCollection();
   }
-} // class AllPermission
-
-/**
- * Implements AllPermission.newPermissionCollection, and obeys serialization
- * of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-final class AllPermissionCollection extends PermissionCollection
-{
-  /**
-   * Compatible with JDK 1.1+.
-   */
-  private static final long serialVersionUID = -4023755556366636806L;
-
-  /**
-   * Whether an AllPermission has been added to the collection.
-   *
-   * @serial if all permission is in the collection yet
-   */
-  private boolean all_allowed;
-
-  /**
-   * Add an AllPermission.
-   *
-   * @param perm the permission to add
-   * @throws IllegalArgumentException if perm is not an AllPermission
-   * @throws SecurityException if the collection is read-only
-   */
-  public void add(Permission perm)
-  {
-    if (isReadOnly())
-      throw new SecurityException();
-    if (! (perm instanceof AllPermission))
-      throw new IllegalArgumentException();
-    all_allowed = true;
-  }
-
-  /**
-   * Returns true if this collection implies a permission.
-   *
-   * @param perm the permission to check
-   * @return true if this collection contains an AllPermission
-   */
-  public boolean implies(Permission perm)
-  {
-    return all_allowed;
-  }
 
   /**
-   * Returns an enumeration of the elements in the collection.
+   * Implements AllPermission.newPermissionCollection, and obeys serialization
+   * of JDK.
    *
-   * @return the elements in the collection
+   * @author Eric Blake (ebb9@email.byu.edu)
    */
-  public Enumeration elements()
+  private static final class AllPermissionCollection extends PermissionCollection
   {
-    return all_allowed
-      ? Collections.enumeration(Collections.singleton(new AllPermission()))
-      : EmptyEnumeration.getInstance();
-  }
-} // class AllPermissionCollection
+    /**
+     * Compatible with JDK 1.1+.
+     */
+    private static final long serialVersionUID = -4023755556366636806L;
+
+    /**
+     * Whether an AllPermission has been added to the collection.
+     *
+     * @serial if all permission is in the collection yet
+     */
+    private boolean all_allowed;
+
+    /**
+     * Add an AllPermission.
+     *
+     * @param perm the permission to add
+     * @throws IllegalArgumentException if perm is not an AllPermission
+     * @throws SecurityException if the collection is read-only
+     */
+    public void add(Permission perm)
+    {
+      if (isReadOnly())
+        throw new SecurityException();
+      if (! (perm instanceof AllPermission))
+        throw new IllegalArgumentException();
+      all_allowed = true;
+    }
+
+    /**
+     * Returns true if this collection implies a permission.
+     *
+     * @param perm the permission to check
+     * @return true if this collection contains an AllPermission
+     */
+    public boolean implies(Permission perm)
+    {
+      return all_allowed;
+    }
+
+    /**
+     * Returns an enumeration of the elements in the collection.
+     *
+     * @return the elements in the collection
+     */
+    public Enumeration elements()
+    {
+      return all_allowed
+        ? Collections.enumeration(Collections.singleton(new AllPermission()))
+        : EmptyEnumeration.getInstance();
+    }
+  } // class AllPermissionCollection
+} // class AllPermission
Index: java/security/BasicPermission.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/security/BasicPermission.java,v
retrieving revision 1.9
diff -u -r1.9 BasicPermission.java
--- java/security/BasicPermission.java	17 Feb 2005 07:48:39 -0000	1.9
+++ java/security/BasicPermission.java	20 Feb 2005 11:30:00 -0000
@@ -72,8 +72,9 @@
  * @since 1.1
  * @status updated to 1.4
  */
-public abstract class BasicPermission extends Permission
+public abstract class BasicPermission extends java.security.Permission
   implements Serializable
+  // FIXME extends with fully qualified classname as workaround for gcj 3.3.
 {
   /**
    * Compatible with JDK 1.1+.
@@ -197,111 +198,111 @@
   {
     return new BasicPermissionCollection(getClass());
   }
-} // class BasicPermission
-
-/**
- * Implements AllPermission.newPermissionCollection, and obeys serialization
- * of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-final class BasicPermissionCollection extends PermissionCollection
-{
-  /**
-   * Compatible with JDK 1.1+.
-   */
-  private static final long serialVersionUID = 739301742472979399L;
-
-  /**
-   * The permissions in the collection.
-   *
-   * @serial a hash mapping name to permissions, all of type permClass
-   */
-  private final Hashtable permissions = new Hashtable();
-
-  /**
-   * If "*" is in the collection.
-   *
-   * @serial true if a permission named "*" is in the collection
-   */
-  private boolean all_allowed;
-
-  /**
-   * The runtime class which all entries in the table must belong to.
-   *
-   * @serial the limiting subclass of this collection
-   */
-  private final Class permClass;
-
-  /**
-   * Construct a collection over the given runtime class.
-   *
-   * @param c the class
-   */
-  BasicPermissionCollection(Class c)
-  {
-    permClass = c;
-  }
 
   /**
-   * Add a Permission. It must be of the same type as the permission which
-   * created this collection.
+   * Implements AllPermission.newPermissionCollection, and obeys serialization
+   * of JDK.
    *
-   * @param perm the permission to add
-   * @throws IllegalArgumentException if perm is not the correct type
-   * @throws SecurityException if the collection is read-only
+   * @author Eric Blake (ebb9@email.byu.edu)
    */
-  public void add(Permission perm)
+  private static final class BasicPermissionCollection extends PermissionCollection
   {
-    if (isReadOnly())
-      throw new SecurityException("readonly");
-    if (! permClass.isInstance(perm))
-      throw new IllegalArgumentException("Expecting instance of " + permClass);
-    BasicPermission bp = (BasicPermission) perm;
-    String name = bp.getName();
-    if (name.equals("*"))
-      all_allowed = true;
-    permissions.put(name, bp);
-  }
-
-  /**
-   * Returns true if this collection implies the given permission.
-   *
-   * @param permission the permission to check
-   * @return true if it is implied by this
-   */
-  public boolean implies(Permission permission)
-  {
-    if (! permClass.isInstance(permission))
-      return false;
-    if (all_allowed)
-      return true;
-    BasicPermission toImply = (BasicPermission) permission;
-    String name = toImply.getName();
-    if (name.equals("*"))
-      return false;
-    int prefixLength = name.length();
-    if (name.endsWith("*"))
-      prefixLength -= 2;
-
-    while (true)
-      {
-        if (permissions.get(name) != null)
-          return true;
-        prefixLength = name.lastIndexOf('.', prefixLength);
-        if (prefixLength < 0)
-          return false;
-        name = name.substring(0, prefixLength + 1) + '*';
-      }
-  }
-
-  /**
-   * Enumerate over the collection.
-   *
-   * @return an enumeration of the collection contents
-   */
-  public Enumeration elements()
-  {
-    return permissions.elements();
-  }
-} // class BasicPermissionCollection
+    /**
+     * Compatible with JDK 1.1+.
+     */
+    private static final long serialVersionUID = 739301742472979399L;
+
+    /**
+     * The permissions in the collection.
+     *
+     * @serial a hash mapping name to permissions, all of type permClass
+     */
+    private final Hashtable permissions = new Hashtable();
+
+    /**
+     * If "*" is in the collection.
+     *
+     * @serial true if a permission named "*" is in the collection
+     */
+    private boolean all_allowed;
+
+    /**
+     * The runtime class which all entries in the table must belong to.
+     *
+     * @serial the limiting subclass of this collection
+     */
+    private final Class permClass;
+
+    /**
+     * Construct a collection over the given runtime class.
+     *
+     * @param c the class
+     */
+    BasicPermissionCollection(Class c)
+    {
+      permClass = c;
+    }
+
+    /**
+     * Add a Permission. It must be of the same type as the permission which
+     * created this collection.
+     *
+     * @param perm the permission to add
+     * @throws IllegalArgumentException if perm is not the correct type
+     * @throws SecurityException if the collection is read-only
+     */
+    public void add(Permission perm)
+    {
+      if (isReadOnly())
+        throw new SecurityException("readonly");
+      if (! permClass.isInstance(perm))
+        throw new IllegalArgumentException("Expecting instance of " + permClass);
+      BasicPermission bp = (BasicPermission) perm;
+      String name = bp.getName();
+      if (name.equals("*"))
+        all_allowed = true;
+      permissions.put(name, bp);
+    }
+
+    /**
+     * Returns true if this collection implies the given permission.
+     *
+     * @param permission the permission to check
+     * @return true if it is implied by this
+     */
+    public boolean implies(Permission permission)
+    {
+      if (! permClass.isInstance(permission))
+        return false;
+      if (all_allowed)
+        return true;
+      BasicPermission toImply = (BasicPermission) permission;
+      String name = toImply.getName();
+      if (name.equals("*"))
+        return false;
+      int prefixLength = name.length();
+      if (name.endsWith("*"))
+        prefixLength -= 2;
+
+      while (true)
+        {
+          if (permissions.get(name) != null)
+            return true;
+          prefixLength = name.lastIndexOf('.', prefixLength);
+          if (prefixLength < 0)
+            return false;
+          name = name.substring(0, prefixLength + 1) + '*';
+        }
+    }
+
+    /**
+     * Enumerate over the collection.
+     *
+     * @return an enumeration of the collection contents
+     */
+    public Enumeration elements()
+    {
+      return permissions.elements();
+    }
+  } // class BasicPermissionCollection
+} // class BasicPermission
Index: java/security/Permissions.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/security/Permissions.java,v
retrieving revision 1.8
diff -u -r1.8 Permissions.java
--- java/security/Permissions.java	17 Feb 2005 07:48:39 -0000	1.8
+++ java/security/Permissions.java	20 Feb 2005 11:30:00 -0000
@@ -188,67 +188,67 @@
       }
     };
   }
-} // class Permissions
-
-/**
- * Implements the permission collection for all permissions without one of
- * their own, and obeys serialization of JDK.
- *
- * @author Eric Blake <ebb9@email.byu.edu>
- */
-class PermissionsHash extends PermissionCollection
-{
-  /**
-   * Compatible with JDK 1.1+.
-   */
-  private static final long serialVersionUID = -8491988220802933440L;
-
-  /**
-   * Hashtable where we store permissions.
-   *
-   * @serial the stored permissions, both as key and value
-   */
-  private final Hashtable perms = new Hashtable();
-
-  /**
-   * Add a permission. We don't need to check for read-only, as this
-   * collection is never exposed outside of Permissions, which has already
-   * done that check.
-   *
-   * @param perm the permission to add
-   */
-  public void add(Permission perm)
-  {
-    perms.put(perm, perm);
-  }
-
-  /**
-   * Returns true if perm is in the collection.
-   *
-   * @param perm the permission to check
-   * @return true if it is implied
-   */
-  // FIXME: Should this method be synchronized?
-  public boolean implies(Permission perm)
-  {
-    Enumeration elements = elements();
-
-    while (elements.hasMoreElements())
-      {
-	Permission p = (Permission)elements.nextElement();
-	if (p.implies(perm))
-	  return true;
-      }
-    return false;
-  }
 
   /**
-   * Return the elements.
+   * Implements the permission collection for all permissions without one of
+   * their own, and obeys serialization of JDK.
    *
-   * @return the elements
+   * @author Eric Blake (ebb9@email.byu.edu)
    */
-  public Enumeration elements()
+  private static final class PermissionsHash extends PermissionCollection
   {
-    return perms.elements();
-  }
+    /**
+     * Compatible with JDK 1.1+.
+     */
+    private static final long serialVersionUID = -8491988220802933440L;
+
+    /**
+     * Hashtable where we store permissions.
+     *
+     * @serial the stored permissions, both as key and value
+     */
+    private final Hashtable perms = new Hashtable();
+
+    /**
+     * Add a permission. We don't need to check for read-only, as this
+     * collection is never exposed outside of Permissions, which has already
+     * done that check.
+     *
+     * @param perm the permission to add
+     */
+    public void add(Permission perm)
+    {
+      perms.put(perm, perm);
+    }
+
+    /**
+     * Returns true if perm is in the collection.
+     *
+     * @param perm the permission to check
+     * @return true if it is implied
+     */
+    // FIXME: Should this method be synchronized?
+    public boolean implies(Permission perm)
+    {
+      Enumeration elements = elements();
+      
+      while (elements.hasMoreElements())
+	{
+	  Permission p = (Permission)elements.nextElement();
+	  if (p.implies(perm))
+	    return true;
+	}
+      return false;
+    }
+
+    /**
+     * Return the elements.
+     *
+     * @return the elements
+     */
+    public Enumeration elements()
+    {
+      return perms.elements();
+    }
+  } // class PermissionsHash
 } // class Permissions
Index: java/text/MessageFormat.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/text/MessageFormat.java,v
retrieving revision 1.22
diff -u -r1.22 MessageFormat.java
--- java/text/MessageFormat.java	18 Jan 2005 00:56:25 -0000	1.22
+++ java/text/MessageFormat.java	20 Feb 2005 11:30:01 -0000
@@ -46,107 +46,107 @@
 import java.util.Locale;
 import java.util.Vector;
 
-/**
- * @author Tom Tromey <tromey@cygnus.com>
- * @author Jorge Aliss <jaliss@hotmail.com>
- * @date March 3, 1999
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 from http://www.javasoft.com.
- * Status:  Believed complete and correct to 1.2, except serialization.
- *          and parsing.
- */
-final class MessageFormatElement
+public class MessageFormat extends Format
 {
-  // Argument number.
-  int argNumber;
-  // Formatter to be used.  This is the format set by setFormat.
-  Format setFormat;
-  // Formatter to be used based on the type.
-  Format format;
-
-  // Argument will be checked to make sure it is an instance of this
-  // class.
-  Class formatClass;
-
-  // Formatter type.
-  String type;
-  // Formatter style.
-  String style;
-
-  // Text to follow this element.
-  String trailer;
-
-  // Recompute the locale-based formatter.
-  void setLocale (Locale loc)
-  {
-    if (type == null)
-      ;
-    else if (type.equals("number"))
-      {
-	formatClass = java.lang.Number.class;
-
-	if (style == null)
-	  format = NumberFormat.getInstance(loc);
-	else if (style.equals("currency"))
-	  format = NumberFormat.getCurrencyInstance(loc);
-	else if (style.equals("percent"))
-	  format = NumberFormat.getPercentInstance(loc);
-	else if (style.equals("integer"))
-	  {
-	    NumberFormat nf = NumberFormat.getNumberInstance(loc);
-	    nf.setMaximumFractionDigits(0);
-	    nf.setGroupingUsed(false);
-	    format = nf;
-	  }
-	else
-	  {
-	    format = NumberFormat.getNumberInstance(loc);
-	    DecimalFormat df = (DecimalFormat) format;
-	    df.applyPattern(style);
-	  }
-      }
-    else if (type.equals("time") || type.equals("date"))
-      {
-	formatClass = java.util.Date.class;
-
-	int val = DateFormat.DEFAULT;
-	if (style == null)
-	  ;
-	else if (style.equals("short"))
-	  val = DateFormat.SHORT;
-	else if (style.equals("medium"))
-	  val = DateFormat.MEDIUM;
-	else if (style.equals("long"))
-	  val = DateFormat.LONG;
-	else if (style.equals("full"))
-	  val = DateFormat.FULL;
+  /**
+   * @author Tom Tromey (tromey@cygnus.com)
+   * @author Jorge Aliss (jaliss@hotmail.com)
+   * @date March 3, 1999
+   */
+  /* Written using "Java Class Libraries", 2nd edition, plus online
+   * API docs for JDK 1.2 from http://www.javasoft.com.
+   * Status:  Believed complete and correct to 1.2, except serialization.
+   *          and parsing.
+   */
+  private static final class MessageFormatElement
+  {
+    // Argument number.
+    int argNumber;
+    // Formatter to be used.  This is the format set by setFormat.
+    Format setFormat;
+    // Formatter to be used based on the type.
+    Format format;
+
+    // Argument will be checked to make sure it is an instance of this
+    // class.
+    Class formatClass;
+
+    // Formatter type.
+    String type;
+    // Formatter style.
+    String style;
 
-	if (type.equals("time"))
-	  format = DateFormat.getTimeInstance(val, loc);
-	else
-	  format = DateFormat.getDateInstance(val, loc);
+    // Text to follow this element.
+    String trailer;
 
-	if (style != null && val == DateFormat.DEFAULT)
-	  {
-	    SimpleDateFormat sdf = (SimpleDateFormat) format;
-	    sdf.applyPattern(style);
-	  }
-      }
-    else if (type.equals("choice"))
-      {
-	formatClass = java.lang.Number.class;
-
-	if (style == null)
-	  throw new
-	    IllegalArgumentException ("style required for choice format");
-	format = new ChoiceFormat (style);
-      }
+    // Recompute the locale-based formatter.
+    void setLocale (Locale loc)
+    {
+      if (type == null)
+        ;
+      else if (type.equals("number"))
+        {
+	  formatClass = java.lang.Number.class;
+
+	  if (style == null)
+	    format = NumberFormat.getInstance(loc);
+	  else if (style.equals("currency"))
+	    format = NumberFormat.getCurrencyInstance(loc);
+	  else if (style.equals("percent"))
+	    format = NumberFormat.getPercentInstance(loc);
+	  else if (style.equals("integer"))
+	    {
+	      NumberFormat nf = NumberFormat.getNumberInstance(loc);
+	      nf.setMaximumFractionDigits(0);
+	      nf.setGroupingUsed(false);
+	      format = nf;
+	    }
+	  else
+	    {
+	      format = NumberFormat.getNumberInstance(loc);
+	      DecimalFormat df = (DecimalFormat) format;
+	      df.applyPattern(style);
+	    }
+        }
+      else if (type.equals("time") || type.equals("date"))
+        {
+	  formatClass = java.util.Date.class;
+
+	  int val = DateFormat.DEFAULT;
+	  if (style == null)
+	    ;
+	  else if (style.equals("short"))
+	    val = DateFormat.SHORT;
+	  else if (style.equals("medium"))
+	    val = DateFormat.MEDIUM;
+	  else if (style.equals("long"))
+	    val = DateFormat.LONG;
+	  else if (style.equals("full"))
+	    val = DateFormat.FULL;
+
+	  if (type.equals("time"))
+	    format = DateFormat.getTimeInstance(val, loc);
+	  else
+	    format = DateFormat.getDateInstance(val, loc);
+
+	  if (style != null && val == DateFormat.DEFAULT)
+	    {
+	      SimpleDateFormat sdf = (SimpleDateFormat) format;
+	      sdf.applyPattern(style);
+	    }
+        }
+      else if (type.equals("choice"))
+        {
+	  formatClass = java.lang.Number.class;
+
+	  if (style == null)
+	    throw new
+	      IllegalArgumentException ("style required for choice format");
+	  format = new ChoiceFormat (style);
+        }
+    }
   }
-}
 
-public class MessageFormat extends Format
-{
   private static final long serialVersionUID = 6479157306784022952L;
 
   public static class Field extends Format.Field


More information about the Java-patches mailing list