RE.java, [...]: Made 'inner' classes real public static inner classes...

2005-02-20  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.

From-SVN: r95310
This commit is contained in:
Dalibor Topic 2005-02-20 21:18:30 +00:00 committed by Michael Koch
parent 237eaf79a5
commit 7d651220a3
7 changed files with 371 additions and 358 deletions

View File

@ -1,3 +1,15 @@
2005-02-20 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.
2005-02-20 Michael Koch <konqueror@gmx.de>
* gnu/java/text/FormatCharacterIterator.java:

View File

@ -43,15 +43,6 @@ import java.util.PropertyResourceBundle;
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 @@ class CharUnit implements Serializable {
*/
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";

View File

@ -1809,7 +1809,6 @@ public class ObjectInputStream extends InputStream
* @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 @@ public class ObjectInputStream extends InputStream
private int depth = 0;
private void dumpElement (String msg)
{
{
System.out.print(msg);
}
@ -1898,24 +1897,24 @@ public class ObjectInputStream extends InputStream
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;
}
}
}

View File

@ -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 @@ public final class AllPermission extends Permission
{
return new AllPermissionCollection();
}
/**
* Implements AllPermission.newPermissionCollection, and obeys serialization
* of JDK.
*
* @author Eric Blake (ebb9@email.byu.edu)
*/
private static 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.
*
* @return the elements in the collection
*/
public Enumeration elements()
{
return all_allowed
? Collections.enumeration(Collections.singleton(new AllPermission()))
: EmptyEnumeration.getInstance();
}
} // class 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.
*
* @return the elements in the collection
*/
public Enumeration elements()
{
return all_allowed
? Collections.enumeration(Collections.singleton(new AllPermission()))
: EmptyEnumeration.getInstance();
}
} // class AllPermissionCollection

View File

@ -72,8 +72,9 @@ import java.util.Hashtable;
* @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 @@ public abstract class BasicPermission extends Permission
{
return new BasicPermissionCollection(getClass());
}
/**
* Implements AllPermission.newPermissionCollection, and obeys serialization
* of JDK.
*
* @author Eric Blake (ebb9@email.byu.edu)
*/
private static 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.
*
* @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
/**
* 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.
*
* @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

View File

@ -188,67 +188,67 @@ public final class Permissions extends PermissionCollection
}
};
}
} // 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.
*
* @return the elements
*/
public Enumeration elements()
{
return perms.elements();
}
/**
* Implements the permission collection for all permissions without one of
* their own, and obeys serialization of JDK.
*
* @author Eric Blake (ebb9@email.byu.edu)
*/
private static final 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.
*
* @return the elements
*/
public Enumeration elements()
{
return perms.elements();
}
} // class PermissionsHash
} // class Permissions

View File

@ -46,107 +46,107 @@ import java.util.HashMap;
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
{
// 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;
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
{
/**
* @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;
// 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;
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);
}
}
}
private static final long serialVersionUID = 6479157306784022952L;
public static class Field extends Format.Field