public void setInitialTokens( List<NamedToken> tokens ) { nameToId.clear(); idToToken.clear(); putAll( tokens ); }
private synchronized void createMissingTokens( String[] names, int[] ids ) { // We redo the resolving under the lock, to make sure that these ids are really missing, and won't be // created concurrently with us. MutableIntSet unresolvedIndexes = new IntHashSet(); resolveIds( names, ids, i -> !unresolvedIndexes.add( i ) ); if ( !unresolvedIndexes.isEmpty() ) { // We still have unresolved ids to create. ObjectIntHashMap<String> createdTokens = createUnresolvedTokens( unresolvedIndexes, names, ids ); List<NamedToken> createdTokensList = new ArrayList<>( createdTokens.size() ); createdTokens.forEachKeyValue( ( name, index ) -> createdTokensList.add( new NamedToken( name, ids[index] ) ) ); tokenRegistry.putAll( createdTokensList ); } }
public void setInitialTokens( List<NamedToken> tokens ) { nameToId.clear(); idToToken.clear(); putAll( tokens ); }
private synchronized void createMissingTokens( String[] names, int[] ids ) { // We redo the resolving under the lock, to make sure that these ids are really missing, and won't be // created concurrently with us. MutableIntSet unresolvedIndexes = new IntHashSet(); resolveIds( names, ids, i -> !unresolvedIndexes.add( i ) ); if ( !unresolvedIndexes.isEmpty() ) { // We still have unresolved ids to create. ObjectIntHashMap<String> createdTokens = createUnresolvedTokens( unresolvedIndexes, names, ids ); List<NamedToken> createdTokensList = new ArrayList<>( createdTokens.size() ); createdTokens.forEachKeyValue( ( name, index ) -> createdTokensList.add( new NamedToken( name, ids[index] ) ) ); tokenRegistry.putAll( createdTokensList ); } }