package org.buckit.datasource.yaml; import java.util.Map; import org.buckit.Config; import org.buckit.access.AccessLevel; import org.buckit.access.Group; import org.buckit.datasource.DataSourceManager; import org.buckit.datasource.type.AccessDataSource; public class YamlAccessDataSource implements AccessDataSource{ private Map<Integer, Group> groupsint; private Map<String, Group> groups; private Map<Integer, AccessLevel> accesslevelsint; private Map<String, AccessLevel> accesslevels; private static final Group defaultGroup = new Group(-1,"default","","world"); private static final AccessLevel defaultLevel = new AccessLevel(-1,new Group[]{defaultGroup},"default",null,false,false); private DataSourceManager datasource; public YamlAccessDataSource(DataSourceManager dataSource) { datasource = dataSource; } @Override public AccessLevel getAccessLevel(int id) { if(accesslevelsint.containsKey(id)) return accesslevelsint.get(id); else return defaultLevel; } @Override public AccessLevel getAccessLevel(String name) { if(accesslevels.containsKey(name)) return accesslevels.get(name); else return defaultLevel; } @Override public Group getGroup(int id) { if(groupsint.containsKey(id)) return groupsint.get(id); else return defaultGroup; } @Override public Group getGroup(String name) { if(groups.containsKey(name)) return groups.get(name); else return defaultGroup; } @Override public boolean load() { // TODO: Implement. throw new UnsupportedOperationException("Not supported yet."); } private Group[] getGroups(String list) { if(list == null || list.equals("")) return null; String[] split = list.split(Config.DATABASE_DELIMITER); Group[] group = new Group[split.length]; for (int i = 0; i < split.length; i++) { try { group[i] = getGroup(Integer.parseInt(split[i])); } catch (NumberFormatException e) { group[i] = getGroup(split[i]); } if (group[i] == null) { // TODO: print error. } } return group; } @Override public DataSourceManager getDataSource() { return datasource; } }