Commit 7d651220 by Dalibor Topic Committed by Michael Koch

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
parent 237eaf79
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> 2005-02-20 Michael Koch <konqueror@gmx.de>
* gnu/java/text/FormatCharacterIterator.java: * gnu/java/text/FormatCharacterIterator.java:
......
...@@ -43,15 +43,6 @@ import java.util.PropertyResourceBundle; ...@@ -43,15 +43,6 @@ import java.util.PropertyResourceBundle;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Vector; 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 * RE provides the user interface for compiling and matching regular
* expressions. * expressions.
...@@ -119,6 +110,16 @@ class CharUnit implements Serializable { ...@@ -119,6 +110,16 @@ class CharUnit implements Serializable {
*/ */
public class RE extends REToken { 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() // This String will be returned by getVersion()
private static final String VERSION = "1.1.5-dev"; private static final String VERSION = "1.1.5-dev";
......
...@@ -1809,7 +1809,6 @@ public class ObjectInputStream extends InputStream ...@@ -1809,7 +1809,6 @@ public class ObjectInputStream extends InputStream
* @param sm SecurityManager instance which should be called. * @param sm SecurityManager instance which should be called.
* @return The current class loader in the calling stack. * @return The current class loader in the calling stack.
*/ */
private static native ClassLoader currentClassLoader (SecurityManager sm); private static native ClassLoader currentClassLoader (SecurityManager sm);
private native ClassLoader getCallersClassLoader(); private native ClassLoader getCallersClassLoader();
...@@ -1879,7 +1878,7 @@ public class ObjectInputStream extends InputStream ...@@ -1879,7 +1878,7 @@ public class ObjectInputStream extends InputStream
private int depth = 0; private int depth = 0;
private void dumpElement (String msg) private void dumpElement (String msg)
{ {
System.out.print(msg); System.out.print(msg);
} }
...@@ -1898,24 +1897,24 @@ public class ObjectInputStream extends InputStream ...@@ -1898,24 +1897,24 @@ public class ObjectInputStream extends InputStream
System.loadLibrary ("javaio"); 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)
{
this.priority = priority;
this.validator = validator;
}
public int compareTo (Object o) // used to keep a prioritized list of object validators
private static final class ValidatorAndPriority implements Comparable
{ {
ValidatorAndPriority vap = (ValidatorAndPriority)o; int priority;
return this.priority - vap.priority; ObjectInputValidation validator;
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;
}
} }
} }
/* AllPermission.java -- Permission to do anything /* 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. This file is part of GNU Classpath.
...@@ -135,64 +135,64 @@ public final class AllPermission extends Permission ...@@ -135,64 +135,64 @@ public final class AllPermission extends Permission
{ {
return new AllPermissionCollection(); 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())) * Compatible with JDK 1.1+.
: EmptyEnumeration.getInstance(); */
} private static final long serialVersionUID = -4023755556366636806L;
} // class AllPermissionCollection
/**
* 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
...@@ -72,8 +72,9 @@ import java.util.Hashtable; ...@@ -72,8 +72,9 @@ import java.util.Hashtable;
* @since 1.1 * @since 1.1
* @status updated to 1.4 * @status updated to 1.4
*/ */
public abstract class BasicPermission extends Permission public abstract class BasicPermission extends java.security.Permission
implements Serializable implements Serializable
// FIXME extends with fully qualified classname as workaround for gcj 3.3.
{ {
/** /**
* Compatible with JDK 1.1+. * Compatible with JDK 1.1+.
...@@ -197,111 +198,111 @@ public abstract class BasicPermission extends Permission ...@@ -197,111 +198,111 @@ public abstract class BasicPermission extends Permission
{ {
return new BasicPermissionCollection(getClass()); 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+. * Implements AllPermission.newPermissionCollection, and obeys serialization
*/ * of JDK.
private static final long serialVersionUID = 739301742472979399L;
/**
* The permissions in the collection.
* *
* @serial a hash mapping name to permissions, all of type permClass * @author Eric Blake (ebb9@email.byu.edu)
*/ */
private final Hashtable permissions = new Hashtable(); private static final class BasicPermissionCollection extends PermissionCollection
{
/**
* Compatible with JDK 1.1+.
*/
private static final long serialVersionUID = 739301742472979399L;
/** /**
* If "*" is in the collection. * The permissions in the collection.
* *
* @serial true if a permission named "*" is in the collection * @serial a hash mapping name to permissions, all of type permClass
*/ */
private boolean all_allowed; private final Hashtable permissions = new Hashtable();
/** /**
* The runtime class which all entries in the table must belong to. * If "*" is in the collection.
* *
* @serial the limiting subclass of this collection * @serial true if a permission named "*" is in the collection
*/ */
private final Class permClass; private boolean all_allowed;
/** /**
* Construct a collection over the given runtime class. * The runtime class which all entries in the table must belong to.
* *
* @param c the class * @serial the limiting subclass of this collection
*/ */
BasicPermissionCollection(Class c) private final Class permClass;
{
permClass = c;
}
/** /**
* Add a Permission. It must be of the same type as the permission which * Construct a collection over the given runtime class.
* created this collection. *
* * @param c the class
* @param perm the permission to add */
* @throws IllegalArgumentException if perm is not the correct type BasicPermissionCollection(Class c)
* @throws SecurityException if the collection is read-only {
*/ permClass = c;
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. * Add a Permission. It must be of the same type as the permission which
* * created this collection.
* @param permission the permission to check *
* @return true if it is implied by this * @param perm the permission to add
*/ * @throws IllegalArgumentException if perm is not the correct type
public boolean implies(Permission permission) * @throws SecurityException if the collection is read-only
{ */
if (! permClass.isInstance(permission)) public void add(Permission perm)
return false; {
if (all_allowed) if (isReadOnly())
return true; throw new SecurityException("readonly");
BasicPermission toImply = (BasicPermission) permission; if (! permClass.isInstance(perm))
String name = toImply.getName(); throw new IllegalArgumentException("Expecting instance of " + permClass);
if (name.equals("*")) BasicPermission bp = (BasicPermission) perm;
return false; String name = bp.getName();
int prefixLength = name.length(); if (name.equals("*"))
if (name.endsWith("*")) all_allowed = true;
prefixLength -= 2; permissions.put(name, bp);
}
while (true) /**
{ * Returns true if this collection implies the given permission.
if (permissions.get(name) != null) *
return true; * @param permission the permission to check
prefixLength = name.lastIndexOf('.', prefixLength); * @return true if it is implied by this
if (prefixLength < 0) */
return false; public boolean implies(Permission permission)
name = name.substring(0, prefixLength + 1) + '*'; {
} 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)
* Enumerate over the collection. {
* if (permissions.get(name) != null)
* @return an enumeration of the collection contents return true;
*/ prefixLength = name.lastIndexOf('.', prefixLength);
public Enumeration elements() if (prefixLength < 0)
{ return false;
return permissions.elements(); name = name.substring(0, prefixLength + 1) + '*';
} }
} // class BasicPermissionCollection }
/**
* Enumerate over the collection.
*
* @return an enumeration of the collection contents
*/
public Enumeration elements()
{
return permissions.elements();
}
} // class BasicPermissionCollection
} // class BasicPermission
...@@ -188,67 +188,67 @@ public final class Permissions extends PermissionCollection ...@@ -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. * Implements the permission collection for all permissions without one of
* their own, and obeys serialization of JDK.
* *
* @serial the stored permissions, both as key and value * @author Eric Blake (ebb9@email.byu.edu)
*/ */
private final Hashtable perms = new Hashtable(); private static final class PermissionsHash extends PermissionCollection
/**
* 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); /**
} * Compatible with JDK 1.1+.
*/
/** private static final long serialVersionUID = -8491988220802933440L;
* Returns true if perm is in the collection.
* /**
* @param perm the permission to check * Hashtable where we store permissions.
* @return true if it is implied *
*/ * @serial the stored permissions, both as key and value
// FIXME: Should this method be synchronized? */
public boolean implies(Permission perm) private final Hashtable perms = new Hashtable();
{
Enumeration elements = elements(); /**
* Add a permission. We don't need to check for read-only, as this
while (elements.hasMoreElements()) * collection is never exposed outside of Permissions, which has already
{ * done that check.
Permission p = (Permission)elements.nextElement(); *
if (p.implies(perm)) * @param perm the permission to add
return true; */
} public void add(Permission perm)
return false; {
} perms.put(perm, perm);
}
/**
* Return the elements. /**
* * Returns true if perm is in the collection.
* @return the elements *
*/ * @param perm the permission to check
public Enumeration elements() * @return true if it is implied
{ */
return perms.elements(); // 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 } // class Permissions
...@@ -46,107 +46,107 @@ import java.util.HashMap; ...@@ -46,107 +46,107 @@ import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
import java.util.Vector; import java.util.Vector;
/** 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.
*/
final class MessageFormatElement
{ {
// Argument number. /**
int argNumber; * @author Tom Tromey (tromey@cygnus.com)
// Formatter to be used. This is the format set by setFormat. * @author Jorge Aliss (jaliss@hotmail.com)
Format setFormat; * @date March 3, 1999
// Formatter to be used based on the type. */
Format format; /* Written using "Java Class Libraries", 2nd edition, plus online
* API docs for JDK 1.2 from http://www.javasoft.com.
// Argument will be checked to make sure it is an instance of this * Status: Believed complete and correct to 1.2, except serialization.
// class. * and parsing.
Class formatClass; */
private static final class MessageFormatElement
// 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) // Argument number.
; int argNumber;
else if (type.equals("number")) // Formatter to be used. This is the format set by setFormat.
{ Format setFormat;
formatClass = java.lang.Number.class; // Formatter to be used based on the type.
Format format;
if (style == null)
format = NumberFormat.getInstance(loc); // Argument will be checked to make sure it is an instance of this
else if (style.equals("currency")) // class.
format = NumberFormat.getCurrencyInstance(loc); Class formatClass;
else if (style.equals("percent"))
format = NumberFormat.getPercentInstance(loc); // Formatter type.
else if (style.equals("integer")) String type;
{ // Formatter style.
NumberFormat nf = NumberFormat.getNumberInstance(loc); String style;
nf.setMaximumFractionDigits(0);
nf.setGroupingUsed(false); // Text to follow this element.
format = nf; String trailer;
}
else // Recompute the locale-based formatter.
{ void setLocale (Locale loc)
format = NumberFormat.getNumberInstance(loc); {
DecimalFormat df = (DecimalFormat) format; if (type == null)
df.applyPattern(style); ;
} else if (type.equals("number"))
} {
else if (type.equals("time") || type.equals("date")) formatClass = java.lang.Number.class;
{
formatClass = java.util.Date.class; if (style == null)
format = NumberFormat.getInstance(loc);
int val = DateFormat.DEFAULT; else if (style.equals("currency"))
if (style == null) format = NumberFormat.getCurrencyInstance(loc);
; else if (style.equals("percent"))
else if (style.equals("short")) format = NumberFormat.getPercentInstance(loc);
val = DateFormat.SHORT; else if (style.equals("integer"))
else if (style.equals("medium")) {
val = DateFormat.MEDIUM; NumberFormat nf = NumberFormat.getNumberInstance(loc);
else if (style.equals("long")) nf.setMaximumFractionDigits(0);
val = DateFormat.LONG; nf.setGroupingUsed(false);
else if (style.equals("full")) format = nf;
val = DateFormat.FULL; }
else
if (type.equals("time")) {
format = DateFormat.getTimeInstance(val, loc); format = NumberFormat.getNumberInstance(loc);
else DecimalFormat df = (DecimalFormat) format;
format = DateFormat.getDateInstance(val, loc); df.applyPattern(style);
}
if (style != null && val == DateFormat.DEFAULT) }
{ else if (type.equals("time") || type.equals("date"))
SimpleDateFormat sdf = (SimpleDateFormat) format; {
sdf.applyPattern(style); formatClass = java.util.Date.class;
}
} int val = DateFormat.DEFAULT;
else if (type.equals("choice")) if (style == null)
{ ;
formatClass = java.lang.Number.class; else if (style.equals("short"))
val = DateFormat.SHORT;
if (style == null) else if (style.equals("medium"))
throw new val = DateFormat.MEDIUM;
IllegalArgumentException ("style required for choice format"); else if (style.equals("long"))
format = new ChoiceFormat (style); 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; private static final long serialVersionUID = 6479157306784022952L;
public static class Field extends Format.Field public static class Field extends Format.Field
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment