微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

com.google.common.collect.MapMaker的实例源码

项目:otter-G    文件MemoryStageController.java   
public MemoryStageController(Long pipelineId){
    super(pipelineId);

    replys = new MapMaker().makeComputingMap(new Function<StageType,ReplyProcessQueue>() {

        public ReplyProcessQueue apply(StageType input) {
            int size = ArbitrateConfigUtils.getParallelism(getPipelineId()) * 10;
            if (size < 100) {
                size = 100;
            }
            return new ReplyProcessQueue(size);
        }
    });

    progress = new MapMaker().makeMap();
    termins = new LinkedBlockingQueue<TermineventData>(20);
}
项目:otter-G    文件RpcStageController.java   
public RpcStageController(Long pipelineId){
    super(pipelineId);

    replys = new MapMaker().makeComputingMap(new Function<StageType,ReplyProcessQueue>() {

        public ReplyProcessQueue apply(StageType input) {
            int size = ArbitrateConfigUtils.getParallelism(getPipelineId()) * 10;
            if (size < 100) {
                size = 100;
            }
            return new ReplyProcessQueue(size);
        }
    });

    progress = new MapMaker().makeMap();
    // 注册一下监听事件变化
    processMonitor = ArbitrateFactory.getInstance(pipelineId,ProcessMonitor.class);
    processMonitor.addListener(this);
    processMonitor.reload();
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试insert+update
 */
@Test
public void testMergeWithSameKeyOfIU() {
    Map<RowKey,EventData> mergeMap = new MapMaker().makeMap();
    DbLoadMerger.merge(makeInsertEventData(),mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(),mergeMap);

    for (Entry<RowKey,EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE,keyColumn.getColumnValue());
        Assert.assertEquals(KEY_NAME,keyColumn.getColumnName());

        EventData eventData = entry.getValue();

        Assert.assertEquals(SCHEMA_NAME,eventData.getSchemaName());
        Assert.assertEquals(TABLE_NAME,eventData.getTableName());
        Assert.assertEquals(TABLE_ID,eventData.getTableId());
        Assert.assertEquals(EventType.INSERT,eventData.getEventType());
        Assert.assertEquals(eventData.getoldKeys().size(),0); // 不存在oldKeys

        List<EventColumn> columns = eventData.getColumns();
        Assert.assertEquals(3,columns.size());
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试insert+update+delete
 */
@Test
public void testMergeWithSameKeyOfIUD() {
    Map<RowKey,mergeMap);
    DbLoadMerger.merge(makeDeleteEventData(),keyColumn.getColumnName());

        EventData eventData = entry.getValue();
        Assert.assertEquals(SCHEMA_NAME,eventData.getTableId());
        Assert.assertEquals(EventType.DELETE,0); // 不存在oldKeys

        List<EventColumn> columns = eventData.getColumns();
        Assert.assertEquals(0,columns.size());
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试insert+update+delete+insert
 */
@Test
public void testMergeWithSameKeyOfIUDI() {
    Map<RowKey,mergeMap);
    DbLoadMerger.merge(makeInsertEventData(),0); // 不存在oldKeys

        List<EventColumn> columns = eventData.getColumns();
        Assert.assertEquals(2,columns.size());
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update
 */
@Test
public void testMergeWithUpdateKeyOfUU() {
    Map<RowKey,EventData> mergeMap = new MapMaker().makeMap();
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE,KEY_VALUE_NEW1),mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW1,KEY_VALUE_NEW2),EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE_NEW2,eventData.getTableId());
        Assert.assertEquals(EventType.UPDATE,eventData.getEventType());

        List<EventColumn> oldKeys = eventData.getoldKeys();
        List<EventColumn> keys = eventData.getKeys();
        Assert.assertNotSame(oldKeys,keys);
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update/delete
 */
@Test
public void testMergeWithUpdateKeyOfUUD() {
    Map<RowKey,EventData> mergeMap = new MapMaker().makeMap();
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW1,mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW2,KEY_VALUE),EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE_NEW1,0); // 不存在oldKeys
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Insert/Update/Update/Update/Update
 */
@Test
public void testMergeWithUpdateKeyOfIUUUU() {
    Map<RowKey,mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE,KEY_VALUE_NEW3),mergeMap);
    DbLoadMerger.merge(makeUpdateEventData(KEY_VALUE_NEW3,KEY_VALUE_NEW4),EventData> entry : mergeMap.entrySet()) {
        RowKey key = entry.getKey();
        EventColumn keyColumn = key.getKeys().get(0);
        Assert.assertEquals(KEY_VALUE_NEW4,0); // 不存在oldKeys
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update/Insert
 */
@Test
public void testMergeWithUpdateKeyOfUI() {
    Map<RowKey,eventData.getEventType());

        List<EventColumn> oldKeys = eventData.getoldKeys();
        List<EventColumn> keys = eventData.getKeys();

        Assert.assertNotSame(oldKeys,keys);
    }
}
项目:otter-G    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Insert/Insert
 */
@Test
public void testMergeWithUpdateKeyOfII() {
    Map<RowKey,keys);
    }
}
项目:LCIndex-HBase-0.94.16    文件ExactCounterMetric.java   
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam,final MetricsRegistry registry,final String description,int topN) {
  super(nam,description);

  this.counts = new MapMaker().makeComputingMap(
      new Function<String,Counter>() {
        @Override
        public Counter apply(String input) {
          return new Counter();
        }    
      });

  this.lock = new reentrantreadwritelock();
  this.topN = topN;

  if (registry != null) {
    registry.add(nam,this);      
  }
}
项目:bts    文件EclipsePreferencesProvider.java   
public IPreferenceValues getPreferenceValues(Resource context) {
    final IProject project = getProject(context);
    final IPreferenceStore store = project != null ?
        access.getContextPreferenceStore(project) :
        access.getPreferenceStore();

    @SuppressWarnings("deprecation")
    final Map<String,String> computingMap = new MapMaker().makeComputingMap(
            new Function<String,String>() {
                public String apply(String input) {
                    return store.getString(input);
                }
            });

    return new IPreferenceValues() {
        public String getPreference(PreferenceKey key) {
            try {
                final String string = computingMap.get(key.getId());
                return org.eclipse.jface.preference.IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(string) ? key.getDefaultValue() : string;
            } catch (Exception e) {
                log.error("Error getting preference for key '"+key.getId()+"'.",e);
                return key.getDefaultValue();
            }
        }
    };
}
项目:guava-libraries    文件MapMakerSingleThreadBenchmark.java   
@BeforeExperiment void setUp() {
  // random integers will be generated in this range,then raised to the
  // power of (1/concentration) and floor()ed
  max = Ints.checkedCast((long) Math.pow(distinctKeys,concentration));

  cache = new MapMaker()
      .concurrencyLevel(segments)
      .maximumSize(maximumSize)
      .makeComputingMap(
          new Function<Integer,Integer>() {
            @Override public Integer apply(Integer from) {
              return (int) misses.incrementAndGet();
            }
          });

  // To start,fill up the cache.
  // Each miss both increments the counter and causes the map to grow by one,// so until evictions begin,the size of the map is the greatest return
  // value seen so far
  while (cache.get(nextRandomKey()) < maximumSize) {}

  requests.set(0);
  misses.set(0);
}
项目:ViewIt    文件SimplescoreboardElement.java   
public SimplescoreboardElement(Plugin plugin,int priority,long updateDelay,List<FrameSupply> contents) {
    this.priority = priority;
    this.contents = Lists.newcopyOnWriteArrayList(contents);
    this.plugin = plugin;
    // forced update delay so that players can be cleaned out // implementation specific
    this.updateDelay = updateDelay > 0 ? updateDelay : 20L * 10;
    this.isTitle = priority < 0;

    MapMaker mapMaker = new MapMaker().weakKeys();
    this.playerContentsMap = mapMaker.makeMap();
    this.cachedContents = mapMaker.makeMap();

    Bukkit.getScheduler()
            .runTasktimerAsynchronously(plugin,this::updateAnimations,1l,this.updateDelay);
}
项目:codemining-treelm    文件PatternStatsCalculator.java   
public PatternStatsCalculator(final AbstractJavaTreeExtractor treeFormat,final Set<TreeNode<Integer>> patterns,final File directory) {
    this.treeFormat = treeFormat;
    this.patterns = HashMultiset.create(patterns);
    int currentIdx = 0;
    for (final Multiset.Entry<TreeNode<Integer>> rule : this.patterns
            .entrySet()) {
        patternDictionary.put(rule.getElement(),currentIdx);
        patternSizes.put(currentIdx,rule.getElement().getTreeSize());
        currentIdx++;
    }

    allFiles = FileUtils
            .listFiles(directory,JavaTokenizer.javaCodeFileFilter,DirectoryFileFilter.DIRECTORY);

    fileSizes = new MapMaker()
            .concurrencyLevel(ParallelThreadPool.NUM_THREADS)
            .initialCapacity(allFiles.size()).makeMap();
    filePatterns = HashBasedTable.create(allFiles.size(),patterns.size() / 10);
    filePatternsCount = HashBasedTable.create(allFiles.size(),patterns.size() / 1);
}
项目:watcher    文件MetricsCache.java   
private static void init() {
    if (!init) {
        synchronized (MetricsCache.class) {
            if (!init) {
                cache = new MapMaker().concurrencyLevel(4).weakValues().makeMap();
                scheduledexecutorservice = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
                    @Override
                    public Thread newThread(Runnable r) {
                        Thread thread = new Thread(r);
                        thread.setDaemon(true);
                        thread.setName("watcher-cache-evict-thread");
                        return thread;
                    }
                });
                scheduledexecutorservice.scheduleAtFixedrate(new Runnable() {
                    @Override
                    public void run() {
                        INSTANCE.evict();
                    }
                },TimeUnit.SECONDS);
                init = true;
            }
        }
    }
}
项目:ef-orm    文件CollectionTest.java   
@Test
public void testIdentitySet() throws InterruptedException{
    IdentityHashMap<String,Object> m1=new IdentityHashMap<String,Object>(1024);
    Map<String,Object> m2=new HashMap<String,Object> m3=new java.util.IdentityHashMap<String,Object>(1024);

    Map<String,Object> m4=new MapMaker().concurrencyLevel(8).initialCapacity(1024).makeMap();
    Map<String,Object> m5=new ConcurrentHashMap<String,Object> m6=new Hashtable<String,Object>(1024);


    warmup();
    for(int i=0;i<LOOP;i++){
        xx[i]=RandomData.randomString(10);
    }

    testMap_(m1);
    if(threadCount==1){
        testMap(m2,"JDK HashMap");  //Will get deadlock under multiple-threads. 
    }
    testMap(m3,"JDK IdentityHashMap             ");
    testMap(m4,"Guava Mapmaker.concurrencyLevel(8)");
    testMap(m5,"JDK ConcurrentHashMap           ");
    testMap(m6,"JDK Hashtable                   ");
}
项目:IRIndex    文件ExactCounterMetric.java   
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam,this);      
  }
}
项目:kurento-java    文件RomClientWeakRemoteObjects.java   
@Test
public void testWeakRefsMap() throws Exception {

  ConcurrentMap<String,Object> objects = new MapMaker().weakValues().makeMap();

  objects.put("xxx",new Object());

  if (null == objects.get("xxx")) {
    Assert.fail("Reference should NOT be null");
  }

  try {
    @SuppressWarnings("unused")
    Object[] ignored = new Object[(int) Runtime.getRuntime().maxMemory()];
  } catch (Throwable e) {
    // Ignore OME
  }

  if (null != objects.get("xxx")) {
    Assert.fail("Reference should be null");
  }
}
项目:orm-benchmark    文件ConnectionHandle.java   
/** Private -- used solely for unit testing. 
 * @param connection
 * @param preparedStatementCache
 * @param callableStatementCache
 * @param pool
 * @return Connection Handle
 */
protected static ConnectionHandle createTestConnectionHandle(Connection connection,IStatementCache preparedStatementCache,IStatementCache callableStatementCache,BoneCP pool){
    ConnectionHandle handle = new ConnectionHandle();
    handle.connection = connection;
    handle.preparedStatementCache = preparedStatementCache;
    handle.callableStatementCache = callableStatementCache;
    handle.connectionLastUsedInMs = System.currentTimeMillis();
    handle.connectionLastResetInMs = System.currentTimeMillis();
    handle.connectionCreationTimeInMs = System.currentTimeMillis();
    handle.recoveryResult = new TransactionRecoveryResult();
    handle.trackedStatement = new MapMaker().makeMap();
    handle.url = "foo";
    handle.cloSEOpenStatements = true;

    handle.pool = pool;
    handle.url=null;
    int cacheSize = pool.getConfig().getStatementsCacheSize();
    if (cacheSize > 0) {
        handle.statementCachingEnabled = true;
    }

    return handle;
}
项目:KraftRPG-API    文件AnnotationCacheHelper.java   
/**
 * Builds the cache for the given class.
 *
 * @param target The target class
 */
public void build(Class<?> target) {
    if (this.cache.containsKey(target)) {
        return;
    }
    //System.out.println("Building cache for " + target.getName());
    Map<Class,List<Method>> anno = new MapMaker().weakKeys().makeMap();
    for (Method m : target.getmethods()) {
        for (Annotation a : m.getAnnotations()) {
            if (!anno.containsKey(a.annotationType())) {
                anno.put(a.annotationType(),Lists.<Method>newArrayList());
            }
            //System.out.println("\t" + a.annotationType().getSimpleName() + " - " + m.toGenericString());
            anno.get(a.annotationType()).add(m);
        }
    }
    this.cache.put(target,anno);
}
项目:SevenCommons    文件MethodHandleHelpers.java   
public static synchronized MethodHandle equal(Class<?> type) {
    checkArgument(type != void.class);
    Class<?> erased = type.isPrimitive() ? type : Object.class;

    if (cache == null) {
        cache = new MapMaker().concurrencyLevel(2).makeMap();
    }
    MethodHandle result = cache.get(erased);

    if (result == null) {
        try {
            result = lookup().findStatic(MethodHandleHelpers.class,"eq",methodType(boolean.class,erased,erased));
        } catch (NoSuchMethodException | illegalaccessexception e) {
            throw new AssertionError(); // these all exist
        }
        cache.put(erased,result);
    }
    return result.asType(methodType(boolean.class,type,type));
}
项目:otter    文件MemoryStageController.java   
public MemoryStageController(Long pipelineId){
    super(pipelineId);

    replys = otterMigrateMap.makeComputingMap(new Function<StageType,ReplyProcessQueue>() {

        public ReplyProcessQueue apply(StageType input) {
            int size = ArbitrateConfigUtils.getParallelism(getPipelineId()) * 10;
            if (size < 100) {
                size = 100;
            }
            return new ReplyProcessQueue(size);
        }
    });

    progress = new MapMaker().makeMap();
    termins = new LinkedBlockingQueue<TermineventData>(20);
}
项目:otter    文件RpcStageController.java   
public RpcStageController(Long pipelineId){
    super(pipelineId);

    replys = otterMigrateMap.makeComputingMap(new Function<StageType,ProcessMonitor.class);
    processMonitor.addListener(this);
    processMonitor.reload();
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试insert+update
 */
@Test
public void testMergeWithSameKeyOfIU() {
    Map<RowKey,columns.size());
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试insert+update+delete
 */
@Test
public void testMergeWithSameKeyOfIUD() {
    Map<RowKey,columns.size());
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试insert+update+delete+insert
 */
@Test
public void testMergeWithSameKeyOfIUDI() {
    Map<RowKey,columns.size());
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update
 */
@Test
public void testMergeWithUpdateKeyOfUU() {
    Map<RowKey,keys);
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update/delete
 */
@Test
public void testMergeWithUpdateKeyOfUUD() {
    Map<RowKey,0); // 不存在oldKeys
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Insert/Update/Update/Update/Update
 */
@Test
public void testMergeWithUpdateKeyOfIUUUU() {
    Map<RowKey,0); // 不存在oldKeys
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Update/Update/Insert
 */
@Test
public void testMergeWithUpdateKeyOfUI() {
    Map<RowKey,keys);
    }
}
项目:otter    文件DbLoadMergerTest.java   
/**
 * 测试在主键发生变化后的merge操作,Insert/Insert
 */
@Test
public void testMergeWithUpdateKeyOfII() {
    Map<RowKey,keys);
    }
}
项目:canal    文件MemoryMetaManager.java   
public void start() {
    super.start();

    batches = MigrateMap.makeComputingMap(new Function<ClientIdentity,MemoryClientIdentityBatch>() {

        public MemoryClientIdentityBatch apply(ClientIdentity clientIdentity) {
            return MemoryClientIdentityBatch.create(clientIdentity);
        }

    });

    cursors = new MapMaker().makeMap();

    destinations = MigrateMap.makeComputingMap(new Function<String,List<ClientIdentity>>() {

        public List<ClientIdentity> apply(String destination) {
            return Lists.newArrayList();
        }
    });
}
项目:HBase-Research    文件ExactCounterMetric.java   
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam,this);      
  }
}
项目:giraph-gora    文件ByteArrayPartition.java   
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),getConf().createVertexValue(),getConf().createOutEdges());
  useUnsafeSerialization = getConf().useUnsafeSerialization();
  for (int i = 0; i < size; ++i) {
    progress();
    I vertexId = getConf().createVertexId();
    vertexId.readFields(input);
    int vertexDataSize = input.readInt();
    byte[] vertexData = new byte[vertexDataSize];
    input.readFully(vertexData);
    if (vertexMap.put(vertexId,vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}
项目:hbase-0.94.8-qod    文件ExactCounterMetric.java   
/**
 * Constructor to create a new counter metric
 * @param nam         the name to publish this metric under
 * @param registry    where the metrics object will be registered
 * @param description metrics description
 * @param topN        how many 'keys' to publish metrics on 
 */
public ExactCounterMetric(final String nam,this);      
  }
}
项目:giraph-research    文件ByteArrayPartition.java   
@Override
public void readFields(DataInput input) throws IOException {
  super.readFields(input);
  int size = input.readInt();
  vertexMap = new MapMaker().concurrencyLevel(
      getConf().getNettyServerExecutionConcurrency()).initialCapacity(
      size).makeMap();
  representativeVertex = getConf().createVertex();
  representativeVertex.initialize(
      getConf().createVertexId(),vertexData) != null) {
      throw new IllegalStateException("readFields: Already saw vertex " +
          vertexId);
    }
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。