亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? classinstrumenter.java

?? java覆蓋率測試工具
?? JAVA
字號:
/*
 * Cobertura - http://cobertura.sourceforge.net/
 *
 * Copyright (C) 2005 Mark Doliner 
 * Copyright (C) 2006 Jiri Mares 
 * 
 * Cobertura is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published
 * by the Free Software Foundation; either version 2 of the License,
 * or (at your option) any later version.
 *
 * Cobertura 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
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Cobertura; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 * USA
 */

package net.sourceforge.cobertura.instrument;

import java.util.Collection;

import net.sourceforge.cobertura.coveragedata.ClassData;
import net.sourceforge.cobertura.coveragedata.ProjectData;

import org.apache.log4j.Logger;
import org.objectweb.asm.ClassAdapter;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;

class ClassInstrumenter extends ClassAdapter
{

	private static final Logger logger = Logger
			.getLogger(ClassInstrumenter.class);

	private final static String hasBeenInstrumented = "net/sourceforge/cobertura/coveragedata/HasBeenInstrumented";

	private Collection ignoreRegexs;

	private Collection ignoreBranchesRegexs;

	private ProjectData projectData;

	private ClassData classData;

	private String myName;

	private boolean instrument = false;

	public String getClassName()
	{
		return this.myName;
	}

	public boolean isInstrumented()
	{
		return instrument;
	}

	public ClassInstrumenter(ProjectData projectData, final ClassVisitor cv,
			final Collection ignoreRegexs, final Collection ignoreBranchesRegexes)
	{
		super(cv);
		this.projectData = projectData;
		this.ignoreRegexs = ignoreRegexs;
		this.ignoreBranchesRegexs = ignoreBranchesRegexs;
	}

	private boolean arrayContains(Object[] array, Object key)
	{
		for (int i = 0; i < array.length; i++)
		{
			if (array[i].equals(key))
				return true;
		}

		return false;
	}

	/**
	 * @param name In the format
	 *             "net/sourceforge/cobertura/coverage/ClassInstrumenter"
	 */
	public void visit(int version, int access, String name, String signature,
			String superName, String[] interfaces)
	{
		this.myName = name.replace('/', '.');
		this.classData = this.projectData.getOrCreateClassData(this.myName);
		this.classData.setContainsInstrumentationInfo();

		// Do not attempt to instrument interfaces or classes that
		// have already been instrumented
		if (((access & Opcodes.ACC_INTERFACE) != 0)
				|| arrayContains(interfaces, hasBeenInstrumented))
		{
			super.visit(version, access, name, signature, superName,
							interfaces);
		}
		else
		{
			instrument = true;

			// Flag this class as having been instrumented
			String[] newInterfaces = new String[interfaces.length + 1];
			System.arraycopy(interfaces, 0, newInterfaces, 0,
							interfaces.length);
			newInterfaces[newInterfaces.length - 1] = hasBeenInstrumented;

			super.visit(version, access, name, signature, superName,
					newInterfaces);
		}
	}

	/**
	 * @param source In the format "ClassInstrumenter.java"
	 */
	public void visitSource(String source, String debug)
	{
		super.visitSource(source, debug);
		classData.setSourceFileName(source);
	}

	public MethodVisitor visitMethod(final int access, final String name,
			final String desc, final String signature,
			final String[] exceptions)
	{
		MethodVisitor mv = cv.visitMethod(access, name, desc, signature,
				exceptions);

		if (!instrument)
			return mv;

		return mv == null ? null : new FirstPassMethodInstrumenter(classData, mv,
				this.myName, access, name, desc, signature, exceptions, ignoreRegexs, 
				ignoreBranchesRegexs);
	}

	public void visitEnd()
	{
		if (instrument && classData.getNumberOfValidLines() == 0)
			logger.warn("No line number information found for class "
					+ this.myName
					+ ".  Perhaps you need to compile with debug=true?");
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品福利| 丁香另类激情小说| 精品成人私密视频| 色综合夜色一区| 久久精品国产一区二区三 | 亚洲黄色性网站| 日韩精品中文字幕一区二区三区| 97精品久久久久中文字幕 | 精品盗摄一区二区三区| 欧美日韩不卡一区| 国产91精品久久久久久久网曝门| 亚洲成人黄色小说| 亚洲精品欧美专区| 国产精品二区一区二区aⅴ污介绍| 久久综合色之久久综合| 色哟哟日韩精品| 91麻豆免费看| 91视频一区二区| av亚洲精华国产精华| 成人一级片在线观看| 国产91色综合久久免费分享| 国产成人精品午夜视频免费| 日韩国产欧美一区二区三区| 日本在线不卡一区| 免费观看成人av| 九色综合狠狠综合久久| 国产一区二区在线影院| 久久成人av少妇免费| 精品一区二区在线看| 激情综合亚洲精品| jlzzjlzz欧美大全| 欧美日本在线播放| 精品国产免费视频| 亚洲人成影院在线观看| 午夜精品爽啪视频| 国模套图日韩精品一区二区 | 欧美成人猛片aaaaaaa| 欧美午夜精品久久久久久超碰| 91香蕉视频污| 欧美日韩国产美| 精品国产99国产精品| 国产精品第一页第二页第三页| 中文字幕一区二区5566日韩| 亚洲线精品一区二区三区| 蜜臀99久久精品久久久久久软件| 国产suv一区二区三区88区| 91久久精品一区二区三| 久久夜色精品国产噜噜av | 国产欧美日韩麻豆91| 亚洲一区二区在线播放相泽| 韩国成人在线视频| 91福利精品视频| 国产精品丝袜91| 国产精品自拍毛片| 欧美不卡一二三| 午夜私人影院久久久久| 色哟哟精品一区| 最新日韩在线视频| av激情综合网| 亚洲国产精品成人综合色在线婷婷| 免费在线看一区| 日韩一卡二卡三卡四卡| 免费成人av资源网| 欧美一区二区在线看| 日韩高清一级片| 欧美一区二区黄| 国内精品免费**视频| 国产视频一区二区在线观看| 国产精品自拍一区| 中文字幕一区二区在线观看| 粉嫩久久99精品久久久久久夜| 精品久久久久久久久久久久久久久| 日本麻豆一区二区三区视频| 精品日韩在线观看| 国产成人精品三级| 一区二区三区欧美亚洲| 欧美一区二区三区色| 日本中文字幕一区二区有限公司| 制服.丝袜.亚洲.中文.综合| 久久国产精品露脸对白| 国产色综合久久| 欧美色视频在线观看| 美女在线观看视频一区二区| 国产欧美日韩精品在线| 欧洲一区在线观看| 国产一区欧美日韩| 亚洲成av人片在线观看无码| 26uuu亚洲| 欧美日本在线观看| 成人动漫一区二区三区| 亚洲va韩国va欧美va精品| 国产日韩亚洲欧美综合| 欧美日本乱大交xxxxx| 高清国产一区二区三区| 丝袜脚交一区二区| 亚洲激情一二三区| 国产精品久久久久一区二区三区共 | 美美哒免费高清在线观看视频一区二区 | 成人av网站免费观看| 中文字幕欧美一| 4438x亚洲最大成人网| 91丨porny丨蝌蚪视频| 国产自产2019最新不卡| 日韩高清中文字幕一区| 亚洲电影在线免费观看| 亚洲欧美色一区| 国产欧美一区二区精品秋霞影院 | 欧美性做爰猛烈叫床潮| 国产成人综合在线| 久久国产免费看| 精品一区二区三区免费播放| 精品影视av免费| 国产老女人精品毛片久久| 色综合久久久久综合| 成人精品免费网站| 色婷婷激情综合| 日韩欧美久久一区| 国产欧美日韩久久| 亚洲综合在线五月| 国产激情视频一区二区三区欧美| 99精品国产视频| 精品日韩一区二区三区| 国产精品视频你懂的| 亚洲国产一区二区三区青草影视| 日日摸夜夜添夜夜添精品视频| 国产一区三区三区| 在线视频你懂得一区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产亚洲福利社区一区| 亚洲二区在线观看| 国产成人免费高清| 91精品国产色综合久久| 国产人伦精品一区二区| 亚洲福利一二三区| eeuss鲁片一区二区三区在线观看| 欧美一区二区日韩一区二区| 一区二区在线电影| 色婷婷av一区二区三区软件 | heyzo一本久久综合| 国产一区二区精品在线观看| 精品国精品国产| 国产69精品久久777的优势| 亚洲欧美电影院| 91精品国产综合久久福利软件| 国产精品自在在线| 一区二区三区精品在线观看| 91蝌蚪国产九色| 一区二区不卡在线视频 午夜欧美不卡在 | 26uuu国产日韩综合| 久久国产婷婷国产香蕉| 欧美日韩第一区日日骚| 午夜精品福利久久久| 欧美精品九九99久久| 日韩电影一二三区| 久久蜜桃av一区精品变态类天堂| 国产一区二区三区免费在线观看| 337p日本欧洲亚洲大胆色噜噜| 国产美女av一区二区三区| 国产日韩欧美精品在线| 99精品国产91久久久久久| 一区二区三区成人| 精品国产免费人成电影在线观看四季| 国产剧情av麻豆香蕉精品| 亚洲精品视频免费观看| 久久亚洲精华国产精华液| 欧美日免费三级在线| 成人黄色在线看| 精东粉嫩av免费一区二区三区| 国产三级久久久| 欧美手机在线视频| 波多野结衣欧美| 精品一二三四区| 亚洲chinese男男1069| 国产精品久久福利| 精品国产免费人成电影在线观看四季| 色婷婷一区二区三区四区| 九九久久精品视频| 精品一区二区三区在线观看国产 | 色视频一区二区| 高清shemale亚洲人妖| 麻豆精品新av中文字幕| 一区二区三区在线免费观看| 国产精品女人毛片| 国产色婷婷亚洲99精品小说| 欧美日韩激情一区二区| 欧美嫩在线观看| 91精品国产综合久久久久久漫画| 欧美日本在线播放| 欧美一区二区女人| 欧美一级二级三级蜜桃| 欧美大片顶级少妇| 久久久国产精品午夜一区ai换脸 | 国产精品美女久久久久久| 成人欧美一区二区三区黑人麻豆| 亚洲最大成人综合| 国内成人精品2018免费看| 99国产精品久久久久久久久久久 | 国产日产欧美一区二区视频| 亚洲免费伊人电影| 久久99蜜桃精品|