Search in sources :

Example 1 with TriggerRouterGrouplet

use of org.jumpmind.symmetric.model.TriggerRouterGrouplet in project symmetric-ds by JumpMind.

the class GroupletService method getGrouplets.

public List<Grouplet> getGrouplets(boolean refreshCache) {
    long maxCacheTime = parameterService.getLong(ParameterConstants.CACHE_TIMEOUT_GROUPLETS_IN_MS);
    List<Grouplet> all = cache;
    if (all == null || System.currentTimeMillis() - lastCacheTime >= maxCacheTime || lastCacheTime == 0 || refreshCache) {
        ISqlTemplate sqlTemplate = platform.getSqlTemplate();
        final Map<String, Grouplet> groupletMap = new HashMap<String, Grouplet>();
        all = sqlTemplate.query(getSql("selectGroupletSql"), new ISqlRowMapper<Grouplet>() {

            public Grouplet mapRow(Row rs) {
                Grouplet grouplet = new Grouplet();
                grouplet.setGroupletId(rs.getString("grouplet_id"));
                grouplet.setDescription(rs.getString("description"));
                grouplet.setGroupletLinkPolicy(GroupletLinkPolicy.valueOf(rs.getString("grouplet_link_policy")));
                grouplet.setCreateTime(rs.getDateTime("create_time"));
                grouplet.setLastUpdateBy(rs.getString("last_update_by"));
                grouplet.setLastUpdateTime(rs.getDateTime("last_update_time"));
                groupletMap.put(grouplet.getGroupletId(), grouplet);
                return grouplet;
            }
        });
        sqlTemplate.query(getSql("selectGroupletLinkSql"), new ISqlRowMapper<GroupletLink>() {

            public GroupletLink mapRow(Row rs) {
                GroupletLink groupletLink = new GroupletLink();
                String groupletId = rs.getString("grouplet_id");
                Grouplet grouplet = groupletMap.get(groupletId);
                groupletLink.setExternalId(rs.getString("external_id"));
                groupletLink.setCreateTime(rs.getDateTime("create_time"));
                groupletLink.setLastUpdateBy(rs.getString("last_update_by"));
                groupletLink.setLastUpdateTime(rs.getDateTime("last_update_time"));
                if (grouplet != null) {
                    grouplet.getGroupletLinks().add(groupletLink);
                }
                return groupletLink;
            }
        });
        sqlTemplate.query(getSql("selectTriggerRouterGroupletSql"), new ISqlRowMapper<TriggerRouterGrouplet>() {

            public TriggerRouterGrouplet mapRow(Row rs) {
                TriggerRouterGrouplet trGrouplet = new TriggerRouterGrouplet();
                String groupletId = rs.getString("grouplet_id");
                Grouplet grouplet = groupletMap.get(groupletId);
                trGrouplet.setAppliesWhen(AppliesWhen.valueOf(rs.getString("applies_when")));
                trGrouplet.setRouterId(rs.getString("router_id"));
                trGrouplet.setTriggerId(rs.getString("trigger_id"));
                trGrouplet.setCreateTime(rs.getDateTime("create_time"));
                trGrouplet.setLastUpdateBy(rs.getString("last_update_by"));
                trGrouplet.setLastUpdateTime(rs.getDateTime("last_update_time"));
                if (grouplet != null) {
                    grouplet.getTriggerRouterGrouplets().add(trGrouplet);
                }
                return trGrouplet;
            }
        });
        cache = all;
        lastCacheTime = System.currentTimeMillis();
    }
    return all;
}
Also used : HashMap(java.util.HashMap) TriggerRouterGrouplet(org.jumpmind.symmetric.model.TriggerRouterGrouplet) ISqlTemplate(org.jumpmind.db.sql.ISqlTemplate) TriggerRouterGrouplet(org.jumpmind.symmetric.model.TriggerRouterGrouplet) Grouplet(org.jumpmind.symmetric.model.Grouplet) GroupletLink(org.jumpmind.symmetric.model.GroupletLink) Row(org.jumpmind.db.sql.Row) ISqlRowMapper(org.jumpmind.db.sql.ISqlRowMapper)

Example 2 with TriggerRouterGrouplet

use of org.jumpmind.symmetric.model.TriggerRouterGrouplet in project symmetric-ds by JumpMind.

the class GroupletService method deleteGrouplet.

public void deleteGrouplet(Grouplet grouplet) {
    List<GroupletLink> links = grouplet.getGroupletLinks();
    for (GroupletLink link : links) {
        deleteGroupletLink(grouplet, link);
    }
    List<TriggerRouterGrouplet> triggerRouters = grouplet.getTriggerRouterGrouplets();
    for (TriggerRouterGrouplet triggerRouterGrouplet : triggerRouters) {
        deleteTriggerRouterGrouplet(grouplet, triggerRouterGrouplet);
    }
    ISqlTemplate sqlTemplate = platform.getSqlTemplate();
    sqlTemplate.update(getSql("deleteGroupletSql"), new Object[] { grouplet.getGroupletId() }, new int[] { Types.VARCHAR });
}
Also used : ISqlTemplate(org.jumpmind.db.sql.ISqlTemplate) TriggerRouterGrouplet(org.jumpmind.symmetric.model.TriggerRouterGrouplet) GroupletLink(org.jumpmind.symmetric.model.GroupletLink)

Example 3 with TriggerRouterGrouplet

use of org.jumpmind.symmetric.model.TriggerRouterGrouplet in project symmetric-ds by JumpMind.

the class GroupletService method getGroupletsFor.

protected List<Grouplet> getGroupletsFor(TriggerRouter triggerRouter, AppliesWhen appliesWhen, boolean refreshCache) {
    List<Grouplet> all = getGrouplets(refreshCache);
    List<Grouplet> grouplets = new ArrayList<Grouplet>();
    for (Grouplet grouplet : all) {
        List<TriggerRouterGrouplet> trGrouplets = grouplet.getTriggerRouterGrouplets();
        for (TriggerRouterGrouplet trGrouplet : trGrouplets) {
            if (trGrouplet.getTriggerId().equals(triggerRouter.getTrigger().getTriggerId()) && trGrouplet.getRouterId().equals(triggerRouter.getRouter().getRouterId()) && (trGrouplet.getAppliesWhen() == appliesWhen || trGrouplet.getAppliesWhen() == AppliesWhen.B)) {
                grouplets.add(grouplet);
            }
        }
    }
    return grouplets;
}
Also used : TriggerRouterGrouplet(org.jumpmind.symmetric.model.TriggerRouterGrouplet) Grouplet(org.jumpmind.symmetric.model.Grouplet) TriggerRouterGrouplet(org.jumpmind.symmetric.model.TriggerRouterGrouplet) ArrayList(java.util.ArrayList)

Aggregations

TriggerRouterGrouplet (org.jumpmind.symmetric.model.TriggerRouterGrouplet)3 ISqlTemplate (org.jumpmind.db.sql.ISqlTemplate)2 Grouplet (org.jumpmind.symmetric.model.Grouplet)2 GroupletLink (org.jumpmind.symmetric.model.GroupletLink)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 ISqlRowMapper (org.jumpmind.db.sql.ISqlRowMapper)1 Row (org.jumpmind.db.sql.Row)1