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
+61 -61
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
+109 -108
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
+63 -63
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