package tk.eclipse.plugin.xmleditor.editors; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.preference.IPreferenceStore; import tk.eclipse.plugin.htmleditor.HTMLPlugin; /** * The model object for the mapping between the root element and the schema. * <p> * This class also provides two static methods which load and save models * from / to the preference store. * * @author Naoki Takezoe */ public class ElementSchemaMapping { private String rootElement; private String filePath; public ElementSchemaMapping(String rootElement, String filePath){ setRootElement(rootElement); setFilePath(filePath); } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public String getRootElement() { return rootElement; } public void setRootElement(String rootElement) { this.rootElement = rootElement; } /** * Save models to the preference store. * * @param list the list which contans models */ public static void saveToPreference(List<ElementSchemaMapping> list){ IPreferenceStore store = HTMLPlugin.getDefault().getPreferenceStore(); StringBuffer sb = new StringBuffer(); for(int i=0;i<list.size();i++){ ElementSchemaMapping mapping = list.get(i); sb.append(mapping.getRootElement()); sb.append("\t"); sb.append(mapping.getFilePath()); sb.append("\n"); } store.setValue(HTMLPlugin.PREF_SCHEMA_MAPPINGS, sb.toString()); } /** * Load models from the preference store as the <code>java.util.List</code> * which contains <code>ElementSchemaMapping</code>. * * @return the list which contans loaded models */ public static List<ElementSchemaMapping> loadFromPreference(){ IPreferenceStore store = HTMLPlugin.getDefault().getPreferenceStore(); List<ElementSchemaMapping> list = new ArrayList<ElementSchemaMapping>(); String customMappings = store.getString(HTMLPlugin.PREF_SCHEMA_MAPPINGS); String[] dim = customMappings.split("\n"); for(int i=0;i<dim.length;i++){ if(dim[i].length() > 0){ String[] elemAndPath = dim[i].split("\t"); ElementSchemaMapping mapping = new ElementSchemaMapping( elemAndPath[0], elemAndPath[1]); list.add(mapping); } } return list; } }