package org.hpccsystems.saltui.hygiene; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class HygieneRuleList { private ArrayList<HygieneRuleBO> rules = new ArrayList<HygieneRuleBO>(); private ArrayList<String> displayTitles = new ArrayList<String>(); private Set<IHygieneRuleListViewer> changeListeners = new HashSet<IHygieneRuleListViewer>(); public HygieneRuleList(){ } public ArrayList<HygieneRuleBO> getFields() { return rules; } public String[] getTitles(){ return displayTitles.toArray(new String[displayTitles.size()]); } public void setRules(ArrayList<HygieneRuleBO> rules) { this.rules = rules; } public int getIndex(String rule){ return displayTitles.indexOf(rule); } public void remove(int index){ System.out.println("Removing: " + index); if(index >= 0 && index <= rules.size()-1){ System.out.println("field size: " + rules.size()); rules.remove(index); rules.trimToSize(); } if(index >= 0 && index <= displayTitles.size()-1){ System.out.println("displayTitles size: " + displayTitles.size()); displayTitles.remove(index); displayTitles.trimToSize(); } } public void add(HygieneRuleBO ft){ rules.add(ft); displayTitles.add(ft.getDisplayTitle()); Iterator<IHygieneRuleListViewer> iterator = changeListeners.iterator(); while (iterator.hasNext()){ iterator.next().addFieldType(ft); } } public void update(int index, HygieneRuleBO ft){ rules.set(index, ft); displayTitles.set(index, ft.getDisplayTitle()); //Iterator<IFieldTypeListViewer> iterator = changeListeners.iterator(); //while (iterator.hasNext()) // iterator.next().modifyFieldType(ft); } public HygieneRuleBO get(int index){ return rules.get(index); } public void createDefault(){ if(this.rules.size() == 0){ HygieneRuleBO caps = new HygieneRuleBO("To Uppercase"); caps.setCaps(true); caps.setTypename("caps"); this.add(caps); HygieneRuleBO leftTrim = new HygieneRuleBO("Left Trim"); leftTrim.setTypename("DEFAULT"); leftTrim.setLefttrim(true); this.add(leftTrim); } } }