@Override
 public void detach(STDocument doc) throws COSSecurityException {
   if (doc == null) {
     return;
   }
   COSEncryption encryption = getEncryption();
   encryption.cosRemoveField(COSEncryption.DK_Filter);
   encryption.cosRemoveField(StandardSecurityHandler.DK_R);
   encryption.cosRemoveField(StandardSecurityHandler.DK_P);
   super.detach(doc);
 }
 @Override
 public void attach(STDocument doc) {
   super.attach(doc);
   if (doc == null) {
     return;
   }
   COSEncryption encryption = getEncryption();
   encryption.cosSetField(COSEncryption.DK_Filter, StandardSecurityHandlerFactory.CN_Standard);
   encryption.cosSetField(StandardSecurityHandler.DK_R, COSInteger.create(getRevision()));
   // apply default permissions
   getEncryption().setFieldInt(StandardSecurityHandler.DK_P, DEFAULT_ACCESS_PERMISSIONS);
 }
 @Override
 public void initialize(STDocument doc) {
   super.initialize(doc);
   setActiveAccessPermissions(AccessPermissionsNone.get());
 }