Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * fb-contrib - Auxiliary detectors for Java programs
  * Copyright (C) 2005-2012 Dave Brosius
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package com.mebigfatguy.fbcontrib.collect;
public class Statistics {
	private static Statistics statistics = new Statistics();
	private Map<LongLongmethodStatistics = new HashMap<LongLong>();
	private Statistics() {
	}
	public static Statistics getStatistics() {
		return ;
	}
	public void clear() {
	}
	public void addMethodStatistics(String classNameString methodNameString signatureMethodInfo methodInfo) {
		Long key = getKey(classNamemethodNamesignature);
		else
			.put(getKey(classNamemethodNamesignature), getValue(methodInfo));
	}
	public MethodInfo getMethodStatistics(String classNameString methodNameString signature) {
		Long v = .get(getKey(classNamemethodNamesignature));
		if (v == null)
			return new MethodInfo();
		else
			return buildMethodInfo(v);
	}
	private Long getKey(String classNameString methodNameString signature) {
		long hashCode = className.hashCode();
		hashCode <<= 16;
		hashCode |= methodName.hashCode();
		hashCode <<= 16;
		hashCode |= signature.hashCode();
		return Long.valueOf(hashCode);
	}
	private Long getValue(MethodInfo methodInfo) {
		long value = methodInfo.numBytes;
		value <<= 32;
		value |= methodInfo.numMethodCalls;
		return Long.valueOf(value);
	}
	private MethodInfo buildMethodInfo(Long value) {
		MethodInfo mi = new MethodInfo();
		long v = value.longValue();
		mi.numBytes = (int)(v >>> 32);
		mi.numMethodCalls = (int)(v & 0x7FFFFFFF);
		return mi;
	}
	public static class MethodInfo
	{
		public int numBytes;
		public int numMethodCalls;
		public MethodInfo() {
			 = 0;
		}
		public MethodInfo(int bytesint calls) {
			 = bytes;
			 = calls;
		}
	}
New to GrepCode? Check out our FAQ X