private void copyRule(final DataRetentionRule rule) {
        if (rule != null) {
            final DataRetentionRule newRule = new DataRetentionRule(
                    rule.getRuleNumber(),
                    System.currentTimeMillis(),
                    rule.getName(),
                    rule.isEnabled(),
                    rule.getExpression(),
                    rule.getAge(),
                    rule.getTimeUnit(),
                    rule.isForever());

            int index = visibleRules.indexOf(rule);
            if (index < visibleRules.size() - 1) {
                visibleRules.add(index + 1, newRule);
            } else {
                visibleRules.add(newRule);
            }
            index = visibleRules.indexOf(newRule);

            update();
            setDirty(true);

            listPresenter.getSelectionModel().setSelected(visibleRules.get(index));
        }
    }
@return The rules created by the users, ignoring the default retain all rule
stroom-core-client/src/main/java/stroom/receive/rules/client/presenter/DataRetentionPolicyPresenter.java