package foundation.data.rule.update; import foundation.data.entity.Entity; import foundation.persist.NamedSQL; import foundation.server.config.DBaseType; import foundation.variant.provider.IVariantsProvider; public class KindredRule { private DBaseType dbaseType; private String id; private String dataName; private String kindredTableName; private String kindredSourceField; private String connectedField; private String kindredConnectField; private String kindredTargetField; private boolean isActive; public void load(Entity entity) throws Exception { id = entity.getId(); dataName = entity.getString("data_name"); kindredTableName = entity.getString("kindred_table_name"); kindredSourceField = entity.getString("kindred_source_field"); connectedField = entity.getString("connected_field", "id"); kindredConnectField = entity.getString("kindred_connect_field"); kindredTargetField = entity.getString("kindred_target_field"); isActive = entity.getBoolean("is_active", true); } public int exec(Entity entity, IVariantsProvider... providers) throws Exception { NamedSQL namedSQL = NamedSQL.getInstance(dbaseType, "updateByKindred"); namedSQL.setParam("dataName", dataName); namedSQL.setParam("kindredTableName", kindredTableName); namedSQL.setParam("kindredTargetField", kindredTargetField); namedSQL.setParam("kindredSourceField", entity.getString(kindredSourceField)); namedSQL.setParam("connectedField", connectedField); namedSQL.setParam("kindredConnectField", kindredConnectField); namedSQL.setVariants(providers); return namedSQL.execute(); } public String getId() { return id; } public String getDataName() { return dataName; } public String getKindredTableName() { return kindredTableName; } public String getKindredSourceField() { return kindredSourceField; } public String getKindredConnectField() { return kindredConnectField; } public String getKindredTargetField() { return kindredTargetField; } public boolean isActive() { return isActive; } public void setDBaseType(DBaseType dbaseType) { this.dbaseType = dbaseType; } }