protected Object doAdvice()

in src/java/org/apache/fulcrum/yaafi/service/advice/AdviceServiceImpl.java [168:210]


	protected Object doAdvice(String name, String[] interceptorList, Object object) {
		Validate.notEmpty(name, "name");
		Validate.notNull(interceptorList, "interceptorList");
		Validate.notNull(object, "object");

		Object result = null;
		String clazzName = object.getClass().getName();

		// do nothing if no interceptor services are requested

		if (interceptorList.length == 0) {
			if (this.getLogger().isInfoEnabled()) {
				String msg = "Skipping creation of dynamic proxy since no interceptors are requested : " + name;
				this.getLogger().info(msg);
			}

			return object;
		}

		// skip creating a dynamic proxy if it is already advised

		if (this.isAdviced(object)) {
			if (this.getLogger().isInfoEnabled()) {
				String msg = "Skipping creation of dynamic proxy since it is already advised : " + name;
				this.getLogger().info(msg);
			}

			return object;
		}

		// create the advised object

		try {
			result = AvalonInterceptorFactory.create(clazzName, name, this.getServiceManager(), interceptorList,
					object);
		} catch (ServiceException e) {
			String msg = "Unable to advice the object : " + name;
			this.getLogger().error(msg, e);
			throw new IllegalArgumentException(msg);
		}

		return result;
	}