class DefaultDeletionCheckStrategy implements IChildDeletionCheckStrategy {

    @Override
    public boolean checkDelete(final IObject creationContext, final IObject messageEnvironment)
            throws DeletionCheckException {
        try {
            IObject messageContext = (IObject) messageEnvironment.getValue(contextFN);
            Object deletionFlag = messageContext.getValue(deleteFN);
            messageContext.deleteField(deleteFN);

            return Boolean.TRUE == deletionFlag;
        } catch (ClassCastException | ReadValueException | DeleteValueException | InvalidArgumentException e) {
            throw new DeletionCheckException(e);
        }
    }

    public  DefaultDeletionCheckStrategy();

}