class GuidedDTDRLPersistence {

    void doAttribs(List<BaseColumn> allColumns,
                   List<AttributeCol52> attributeCols,
                   List<DTCellValue52> row,
                   RuleModel rm) {
        List<RuleAttribute> attribs = new ArrayList<RuleAttribute>();
        for (int j = 0; j < attributeCols.size(); j++) {
            AttributeCol52 at = attributeCols.get(j);
            int index = allColumns.indexOf(at);
            final DTCellValue52 dcv = row.get(index);
            String cell = GuidedDTDRLUtilities.convertDTCellValueToString(dcv);

            if (validateAttributeCell(cell)) {

                //If instance of "otherwise" column then flag RuleModel as being negated
                if (Objects.equals(at.getAttribute(), NEGATE_RULE.getAttributeName())) {
                    rm.setNegated(Boolean.valueOf(cell));
                } else {
                    attribs.add(new RuleAttribute(at.getAttribute(),
                                                  cell));
                }
            }
        }
        if (attribs.size() > 0) {
            rm.attributes = attribs.toArray(new RuleAttribute[attribs.size()]);
        }
    }

}