public void setMemberRepositoryIds( List<String> repositories ) throws NoSuchRepositoryException, InvalidGroupingException { getExternalConfiguration( true ).clearMemberRepositoryIds(); for ( String repoId : repositories ) { addMemberRepositoryId( repoId ); } }
public List<String> getMemberRepositoryIds() { ArrayList<String> result = new ArrayList<String>( getExternalConfiguration( false ).getMemberRepositoryIds().size() ); for ( String id : getExternalConfiguration( false ).getMemberRepositoryIds() ) { result.add( id ); } return Collections.unmodifiableList( result ); }
public void removeMemberRepositoryId( String repositoryId ) { getExternalConfiguration( true ).removeMemberRepositoryId( repositoryId ); }
public void addMemberRepositoryId( String repositoryId ) throws NoSuchRepositoryException, InvalidGroupingException { // validate THEN modify // this will throw NoSuchRepository if needed Repository repo = repoRegistry.getRepository( repositoryId ); // check for cycles List<String> memberIds = new ArrayList<String>( getExternalConfiguration( false ).getMemberRepositoryIds() ); memberIds.add( repo.getId() ); checkForCyclicReference( getId(), memberIds, getId() ); // check for compatibility if ( !repo.getRepositoryContentClass().isCompatible( getRepositoryContentClass() ) ) { throw new InvalidGroupingException( getRepositoryContentClass(), repo.getRepositoryContentClass() ); } // if we are here, all is well getExternalConfiguration( true ).addMemberRepositoryId( repo.getId() ); }
@Subscribe public void onEvent( final RepositoryRegistryEventRemove evt ) { final AbstractGroupRepositoryConfiguration extConfig = this.getExternalConfiguration( false ); if ( extConfig != null && extConfig.getMemberRepositoryIds().contains( evt.getRepository().getId() ) ) { removeMemberRepositoryId( evt.getRepository().getId() ); } }
&& !getExternalConfiguration( false ).getMemberRepositoryIds().equals( getExternalConfiguration( true ).getMemberRepositoryIds() ); currentMemberIds = getExternalConfiguration( false ).getMemberRepositoryIds(); newMemberIds = getExternalConfiguration( true ).getMemberRepositoryIds();