public CacheDefinitionCollection(Method method) throws DaoGenerateException {

		Cache cache = method.getAnnotation(Cache.class);
		if (cache != null) {
			cacheDefinition = new CacheDefinition(cache, method);
		}

		CacheDelete cacheDelete = method.getAnnotation(CacheDelete.class);
		if (cacheDelete != null) {
			CacheDeleteDefinition definition = new CacheDeleteDefinition(cacheDelete, method);
			cacheDeleteDefinitions = lazyInit(cacheDeleteDefinitions);
			cacheDeleteDefinitions.add(definition);
		}

		VerUpdate versionUpdate = method.getAnnotation(VerUpdate.class);
		if (versionUpdate != null) {
			VersionUpdateDefinition definition = new VersionUpdateDefinition(versionUpdate, method);
			versionUpdateDefinitions = lazyInit(versionUpdateDefinitions);
			versionUpdateDefinitions.add(definition);
		}

		CacheUpdate cacheUpdate = method.getAnnotation(CacheUpdate.class);
		if (cacheUpdate != null) {
			parseCacheUpdateDefinition(cacheUpdate, method);
		}

		if (cacheDefinition != null && (cacheDeleteDefinitions != null || versionUpdateDefinitions != null)) {
			throw new DaoGenerateException("方法[" + method
					+ "]配置错误：方法中@Cache注解不能和其他的缓存更新类注解（@CacheDelete、@VerUpdate、@CacheUpdate）共存");
		}

		logBindInfo(method);
	}