private TableSwitchOpecode convertToTableSwitchOpecode(ByteBuffer byteBuffer ,OpcodeType opcodeType,int zeroPadding) {
		int startPosition = byteBuffer.position();
		TableSwitchOpecode tso = new TableSwitchOpecode();
		tso.setOpcodeType(opcodeType);
		int i = 0;
		while (i < zeroPadding) {
			logger.debug("\t\t\t\t\tZeroPadding[" + i + "] : " + (byteBuffer.get() & 0xff)); // skip zero paddings
			i++;
		}
		
		tso.setDefaultOffset(byteBuffer.getInt());
		logger.debug("\t\t\t\t\tdefaultOffset : " + tso.getDefaultOffset()); 

		tso.setLow(byteBuffer.getInt());
		logger.debug("\t\t\t\t\tlow : " + tso.getLow()); 

		tso.setHigh(byteBuffer.getInt());
		logger.debug("\t\t\t\t\thigh : " + tso.getHigh()); 

		int offsetCount = tso.getHigh() - tso.getLow() + 1;

		// TODO 他にもっと動的な0paddingを解決出来る方法を考えたい
		if (offsetCount < 1) {
			logger.debug("\t\t\t\t\tpadding is illegal (offset is negative value): " + zeroPadding);
			byteBuffer.position(startPosition);
			return null;
		}
		int offsetCountAfterPosition = offsetCount * 4;
		if (offsetCountAfterPosition < 0 || offsetCountAfterPosition < offsetCount) {
			// overflow
			logger.debug("\t\t\t\t\tpadding is illegal (tableswitch's offsetCountAfterPosition is negative value): " + offsetCountAfterPosition); 
			byteBuffer.position(startPosition);
			return null;
		}
		int afterPosition = byteBuffer.position() + offsetCountAfterPosition;
		if (afterPosition < 0) {
			logger.debug("\t\t\t\t\tpadding is illegal (tableswitch's afterPosition is negative value): " + afterPosition); 
			byteBuffer.position(startPosition);
			return null;
		}
		if (byteBuffer.limit() < afterPosition) {
			logger.debug("\t\t\t\t\tpadding is illegal (tableswitch's opecode bytes are over total bytes): " + zeroPadding); 
			byteBuffer.position(startPosition);
			return null;
		}
		
		i = 0;
		int[] offsets = new int[offsetCount];
		
		while (i < offsetCount) {
			offsets[i] = (byteBuffer.getInt());
			logger.debug("\t\t\t\t\toffset[" + i + "] : " + offsets[i]);
			i++;
		}
		
		tso.setOffsets(offsets);
		
		return tso;
	}