Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/DynamicGrowthModel.java')
-rw-r--r--plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/DynamicGrowthModel.java98
1 files changed, 0 insertions, 98 deletions
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/DynamicGrowthModel.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/DynamicGrowthModel.java
deleted file mode 100644
index d6a9a6dd8..000000000
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/DynamicGrowthModel.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.emfworkbench;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-
-
-public class DynamicGrowthModel {
-
- private static final int MINIMUM_OPTIMAL_SIZE = 10;
-
- private static final int MEMORY_THRESHHOLD = 100;
-
- private static final int NOTICEABLE_CHANGE = 5;
-
-
- /* Stores a FIFO list of the Key types (IPath)*/
- private final List queue = new LinkedList();
-
- /* We use an int[] as the value so we don't have to keep creating Integer objects */
- private final Map/* <IPath, int[]> */ uniquesMap = new HashMap();
-
-
- /**
- * Inject the key into the DynamicGrowthModel. May or may not affect the
- * dynamic size.
- *
- * @param key The key to inject into the model
- * @return True if the optimal size changed greather than {@value NOTICEABLE_CHANGE} as a result of the injection.
- */
- public synchronized boolean injectKey(IPath key) {
-
- int originalSize = getOptimalSize();
-
- int[] count = null;
- if( (count = (int[]) uniquesMap.get(key)) != null ) {
- /* increment the count */
- ++count[0];
- } else {
- /* insert the first count */
- uniquesMap.put(key, count = new int[] { 1 } );
- }
-
- if( queue.size() == MEMORY_THRESHHOLD ) {
-
- /* take the oldest value off the queue */
- IPath oldestKey = (IPath) queue.remove(0);
-
- /* determine if another instance of the oldest key is still in the queue */
- count = (int[]) uniquesMap.get(oldestKey);
- Assert.isNotNull(count);
-
- /* Reduce the count */
- count[0] -= 1;
-
- /* Count should never be negative */
- Assert.isTrue(count[0] >= 0);
-
-
- /* This unique key is no longer in the queue*/
- if(count[0] == 0) {
- uniquesMap.remove(oldestKey);
- }
-
-
-
- }
- /* Add the newKey to end of the list*/
- queue.add(key);
-
- return Math.abs( originalSize - getOptimalSize() ) > NOTICEABLE_CHANGE;
-
- }
-
- /**
- * The optimal size is an integer from [{@value #MINIMUM_OPTIMAL_SIZE}, {@value #MEMORY_THRESHHOLD}].
- *
- * @return the optimal size for the LRU Cache.
- */
- public int getOptimalSize() {
- return uniquesMap.size() > MINIMUM_OPTIMAL_SIZE ? uniquesMap.size() : MINIMUM_OPTIMAL_SIZE;
- }
-
-}

Back to the top