Esempio
pubblico classe Azione {
pubblico Azione (ConfigurePolicy configurePolicy) {
configurazione = configurePolicy;
}
pubblico annullare eseguire() {
configuration.installPolicy();
//...
}

privato ConfigurePolicy configurazione;
}

pubblico astratto classe ConfigurePolicy {

pubblico ConfigurePolicy(File personalizzare) {
customPolicyResource = personalizzare;
}

pubblico annullare installPolicy() {
Policy.setPolicy(extractPolicy());
}

protetto Direttiva extractPolicy() {
extractPermission(customPolicyResource);
restituire nuova Direttiva() {

pubblico PermissionCollection getPermissions(CodeSource sorgente codice) {
restituire raccolta;
}

pubblico annullare aggiornamento() {
extractPermission(customPolicyResource);
}

};
}
privato PermissionCollection raccolta;
protetto astratto PermissionCollection extractPermission(File file);
privato File customPolicyResource = null;
}
Soluzione
Non creare direttiva personalizzata.
pubblico classe Azione {
pubblico Azione () {
}
pubblico annullare eseguire() {
//...
}

}