HighScorePermission
class defines the permission
that ExampleGame
needs to update the user's high score.
All permission classes
should subclass from either java.security.Permission
or
java.security.BasicPermission
.
The basic difference between the two is that
java.security.Permission
defines more complex
permissions that require names and actions. For example,
a java.io.FilePermission
extends from java.security.Permission
, and requires a name
(a filename), and actions allowed for that file
(read/write/delete).
In contrast, java.security.BasicPermission
defines simpler permissions that only require a name.
For example, java.lang.RuntimePermission
extends from java.security.BasicPermission
and
simply needs a name
(like "exitVM"), which allows programs to exit the Java Virtual
Machine.
Our HighScorePermission
is a simple
permission, and hence can be
extended from java.security.BasicPermission
.
Often, the method implementations in the
BasicPermission
class itself do not need to be overridden by its
subclasses. That is the case with our HighScorePermission
,
so all we need to implement are the constructors,
which just invoke the superclass constructors,
as shown in the
following
:
package com.scoredev.scores; import java.security.*; public final class HighScorePermission extends BasicPermission { public HighScorePermission(String name) { super(name); } // note that actions is ignored and not used, // but this constructor is still needed public HighScorePermission(String name, String actions) { super(name, actions); } }