public List<Mirror> getMirrors() { List<CMirror> modelMirrors = getConfiguration( false ).getRemoteStorage().getMirrors(); List<Mirror> mirrors = new ArrayList<Mirror>( modelMirrors.size() ); for ( CMirror model : modelMirrors ) { Mirror mirror = new Mirror( model.getId(), model.getUrl() ); mirrors.add( mirror ); } return Collections.unmodifiableList( mirrors ); }
protected boolean existsMirrorWithId( boolean forWrite, String id ) { List<CMirror> modelMirrors = getConfiguration( forWrite ).getRemoteStorage().getMirrors(); for ( CMirror modelMirror : modelMirrors ) { if ( modelMirror.getId().equals( id ) ) { return true; } } return false; } }
public void setMirrors( List<Mirror> mirrors ) { if ( mirrors == null || mirrors.isEmpty() ) { getConfiguration( true ).getRemoteStorage().getMirrors().clear(); blacklist.clear(); } else { List<CMirror> modelMirrors = new ArrayList<CMirror>( mirrors.size() ); for ( Mirror mirror : mirrors ) { CMirror model = new CMirror(); model.setId( mirror.getId() ); model.setUrl( mirror.getUrl() ); modelMirrors.add( model ); } getConfiguration( true ).getRemoteStorage().setMirrors( modelMirrors ); // remove blacklist entries for removed mirrors, but retain others Iterator<Entry<String, BlacklistEntry>> i = blacklist.entrySet().iterator(); while ( i.hasNext() ) { String id = i.next().getKey(); if ( !existsMirrorWithId( true, id ) ) { i.remove(); } } } }