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:
committed by
Michael Koch
parent
237eaf79a5
commit
7d651220a3
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user