public static boolean isShadow(final ColumnShadowAlgorithm<Comparable<?>> shadowAlgorithm, final ShadowDetermineCondition shadowCondition) {
        ShadowColumnCondition shadowColumnCondition = shadowCondition.getShadowColumnCondition();
        String tableName = shadowCondition.getTableName();
        ShadowOperationType operationType = shadowCondition.getShadowOperationType();
        for (PreciseColumnShadowValue<Comparable<?>> each : createColumnShadowValues(shadowColumnCondition.getColumn(), shadowColumnCondition.getValues(), tableName, operationType)) {
            if (!tableName.equals(shadowColumnCondition.getOwner()) || !shadowAlgorithm.isShadow(each)) {
                return false;
            }
        }
        return true;
    }
@SuppressWarnings({"unchecked", "rawtypes"})
    @Test
    void assertIsShadow() {
        Properties props = PropertiesBuilder.build(new Property("column", "user_id"), new Property("operation", "insert"), new Property("regex", "[1]"));
        assertTrue(ColumnShadowAlgorithmDeterminer.isShadow(
                (ColumnShadowAlgorithm) TypedSPILoader.getService(ShadowAlgorithm.class, "REGEX_MATCH", props), createShadowDetermineCondition()));
    }