public class Action {
public Action(ConfigurePolicy configurePolicy) {
configuration = configurePolicy;
}
public void execute() {
configuration.installPolicy();
}
private ConfigurePolicy configuration;
}
public abstract class ConfigurePolicy {
public ConfigurePolicy(File custom) {
customPolicyResource = custom;
}
public void installPolicy() {
Policy.setPolicy(extractPolicy());
}
protected Policy extractPolicy() {
extractPermission(customPolicyResource);
return new Policy() {
public PermissionCollection getPermissions(CodeSource codesource) {
return collection;
}
public void refresh() {
extractPermission(customPolicyResource);
}
};
}
private PermissionCollection collection;
protected abstract PermissionCollection extractPermission(File file);
private File customPolicyResource = null;
}
|
|