當前位置: 首頁>>代碼示例>>Java>>正文


Java MethodInvocation.getArguments方法代碼示例

本文整理匯總了Java中org.aopalliance.intercept.MethodInvocation.getArguments方法的典型用法代碼示例。如果您正苦於以下問題:Java MethodInvocation.getArguments方法的具體用法?Java MethodInvocation.getArguments怎麽用?Java MethodInvocation.getArguments使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.aopalliance.intercept.MethodInvocation的用法示例。


在下文中一共展示了MethodInvocation.getArguments方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: validateMethodParameters

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
private void validateMethodParameters(MethodInvocation invocation) throws InvalidArgumentException {
  boolean isInvalid = false;
  InvalidArgumentException ex = new InvalidArgumentException();

  for (int i = 0; i < invocation.getMethod().getParameterCount(); i++) {
    Parameter parameter = invocation.getMethod().getParameters()[i];
    // Only validate arguments which implement ValidatingRequest.
    if (ValidatingRequest.class.isAssignableFrom(parameter.getType())) {
      ValidatingRequest request = (ValidatingRequest) invocation.getArguments()[i];
      if (request == null) {
        // Don't allow null request objects.
        ex.addValidationError(InvalidArgumentException.ErrorMessage.NULL, parameter.getName(), "NULL");
        isInvalid = true;
      } else {
        isInvalid |= validateRequest(request, ex);
      }
    }
  }

  if (isInvalid) {
    // If violations exist abort invoked service call.
    throw ex;
  }
}
 
開發者ID:mnemonic-no,項目名稱:act-platform,代碼行數:25,代碼來源:ValidationAspect.java

示例2: invoke

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
public Object invoke(MethodInvocation mi) throws Throwable
{
    Class<?>[] parameterTypes = mi.getMethod().getParameterTypes();
    Object[] arguments = mi.getArguments();
    for (int i = 0; i < parameterTypes.length; i++)
    {
        if (arguments[i] instanceof ContentStreamImpl)
        {
        	ContentStreamImpl contentStream = (ContentStreamImpl) arguments[i];
            if (contentStream != null)
            {
                // ALF-18006
                if (contentStream.getMimeType() == null)
                {
                	InputStream stream = contentStream.getStream();
                    String mimeType = mimetypeService.guessMimetype(contentStream.getFileName(), stream);
                    contentStream.setMimeType(mimeType);
                }
            }
        }
    }
    return mi.proceed();
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:24,代碼來源:AlfrescoCmisStreamInterceptor.java

示例3: invoke

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
/**
 * {@inheritDoc}
 */
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
    //
    Method m = invocation.getMethod();

    if (m.isAnnotationPresent(Conditioned.class)) {
        Object[] arg = invocation.getArguments();
        if (arg.length > 0 && arg[arg.length - 1] instanceof List && !((List) arg[arg.length - 1]).isEmpty() && ((List) arg[arg.length - 1]).get(0) instanceof GherkinStepCondition) {
            List<GherkinStepCondition> conditions = (List) arg[arg.length - 1];
            displayMessageAtTheBeginningOfMethod(m.getName(), conditions);
            if (!checkConditions(conditions)) {
                Context.getCurrentScenario().write(Messages.getMessage(SKIPPED_DUE_TO_CONDITIONS));
                return Void.TYPE;
            }
        }
    }

    logger.debug("NORAUI ConditionedInterceptor invoke method {}", invocation.getMethod());
    return invocation.proceed();
}
 
開發者ID:NoraUi,項目名稱:NoraUi,代碼行數:24,代碼來源:ConditionedInterceptor.java

示例4: dump

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
/**
 * 記錄請求信息
 * 
 * @param methodInvocation
 * @param take
 */
private void dump(MethodInvocation methodInvocation, Object result, long take) {
    // 取得日誌打印對象
    Logger log = getLogger(methodInvocation.getMethod().getDeclaringClass());
    Object[] args = methodInvocation.getArguments();
    StringBuffer buffer = getArgsString(args);

    if (log.isInfoEnabled()) {
        String className = ClassUtils.getShortClassName(methodInvocation.getMethod().getDeclaringClass());
        String methodName = methodInvocation.getMethod().getName();
        String resultStr = getResultString(result);

        String now = new SimpleDateFormat(DATA_FORMAT).format(new Date());
        log.info(MessageFormat.format(MESSAGE, new Object[] { className, methodName, now, take, buffer.toString(),
                resultStr }));
    }
}
 
開發者ID:luoyaogui,項目名稱:otter-G,代碼行數:23,代碼來源:LogInterceptor.java

示例5: getRequestHeader

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
/**
 * Retrieve the RequestHeader set in the invoked method.
 *
 * @param invocation Invoked method
 * @return RequestHeader
 */
RequestHeader getRequestHeader(MethodInvocation invocation) {
  Method method = invocation.getMethod();
  if (!isServiceMethod(method)) {
    throw new IllegalArgumentException("Invoked method is not a service method: " + method.getName());
  }

  if (invocation.getArguments()[0] == null) {
    throw new IllegalStateException("RequestHeader is not set in method: " + method.getName());
  }

  return (RequestHeader) invocation.getArguments()[0];
}
 
開發者ID:mnemonic-no,項目名稱:act-platform,代碼行數:19,代碼來源:AbstractAspect.java

示例6: proceed

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
/**
 * Allow the given method invocation to proceed, auditing values before invocation and
 * after returning or throwing.
 * 
 * @param mi                the invocation
 * @return                  Returns the method return (if a value is not thrown)
 * @throws Throwable        rethrows any exception generated by the invocation
 * 
 * @since 3.2
 */
private Object proceed(MethodInvocation mi) throws Throwable
{
    // Are we in a nested audit?
    Boolean wasInAudit = inAudit.get();
    try
    {
        // If we are already in a nested audit call, there is nothing to do
        if (Boolean.TRUE.equals(wasInAudit))
        {
            return mi.proceed();
        }

        Auditable auditableDef = mi.getMethod().getAnnotation(Auditable.class);
        if (auditableDef == null)
        {
            // No annotation, so just continue as normal
            return mi.proceed();
        }
        
        // First get the argument map, if present
        Object[] args = mi.getArguments();
        Map<String, Serializable> namedArguments = getInvocationArguments(auditableDef, args);
        // Get the service name
        String serviceName = beanIdentifier.getBeanName(mi);
        if (serviceName == null)
        {
            // Not a public service
            return mi.proceed();
        }
        String methodName = mi.getMethod().getName();
        
        return proceedWithAudit(mi, auditableDef, serviceName, methodName, namedArguments);
    }
    finally
    {
        inAudit.set(wasInAudit);                       
    }
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:49,代碼來源:AuditMethodInterceptor.java

示例7: invoke

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
public Object invoke(MethodInvocation mi) throws Throwable 
{
    while (true)
    {
        try
        {
            MethodInvocation clone = ((ReflectiveMethodInvocation)mi).invocableClone();
            return clone.proceed();
        }
        catch (AuthenticationException ae)
        {
            // Sleep for an interval and try again.
            try
            {
                Thread.sleep(fRetryInterval);
            }
            catch (InterruptedException ie)
            {
                // Do nothing.
            }
            try
            {
                // Reauthenticate.
                fAuthService.authenticate(fUser, fPassword.toCharArray());
                String ticket = fAuthService.getCurrentTicket();
                fTicketHolder.setTicket(ticket);
                // Modify the ticket argument.
                mi.getArguments()[0] = ticket;
            }
            catch (Exception e)
            {
                // Do nothing.
            }
        }
    }
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:37,代碼來源:ReauthenticatingAdvice.java

示例8: invokeHandlerMethod

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
private void invokeHandlerMethod(MethodInvocation mi, Throwable ex, Method method) throws Throwable {
	Object[] handlerArgs;
	if (method.getParameterTypes().length == 1) {
		handlerArgs = new Object[] { ex };
	}
	else {
		handlerArgs = new Object[] {mi.getMethod(), mi.getArguments(), mi.getThis(), ex};
	}
	try {
		method.invoke(this.throwsAdvice, handlerArgs);
	}
	catch (InvocationTargetException targetEx) {
		throw targetEx.getTargetException();
	}
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:16,代碼來源:ThrowsAdviceInterceptor.java

示例9: getArgument

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
private <T> T getArgument(MethodInvocation invocation, int index)
{
    Object[] args = invocation.getArguments();
    return index > args.length ? null : (T)args[index];        
}
 
開發者ID:Alfresco,項目名稱:alfresco-repository,代碼行數:7,代碼來源:ACLEntryVoter.java

示例10: invoke

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
@Override
public Object invoke(MethodInvocation invocation) throws Throwable // NOSONAR
{
	Class<?> targetClass = (invocation.getThis() != null ? invocation.getThis().getClass() : null);

	final SecurityAttribute secAttr = attributeSource.getAttribute(invocation.getMethod(), targetClass);
	if( CurrentUser.getUserState().isSystem() )
	{
		return invocation.proceed();
	}
	if( secAttr.isSystemOnly() )
	{
		throw new AccessDeniedException("You must be the system administrator"); //$NON-NLS-1$
	}
	Object domainObj = null;
	Set<String> onCallPrivs = secAttr.getOnCallPrivileges();
	if( !Check.isEmpty(onCallPrivs) && secAttr.getOnCallmode() != null )
	{
		switch( secAttr.getOnCallmode() )
		{
			case DOMAIN:
				domainObj = invocation.getArguments()[secAttr.getDomainArg()]; // NOSONAR
				// Let it fall through
			case TOPLEVEL:
				if( tleAclManager.filterNonGrantedPrivileges(domainObj, onCallPrivs).isEmpty() )
				{
					throwAccessDenied(onCallPrivs);
				}
				break;
			case ANY:
				if( tleAclManager.filterNonGrantedPrivileges(onCallPrivs).isEmpty() )
				{
					throwAccessDenied(onCallPrivs);
				}
				break;
		}
	}
	if( secAttr.isFilterMatching() )
	{
		return filterResult(invocation, secAttr);
	}
	return invocation.proceed();
}
 
開發者ID:equella,項目名稱:Equella,代碼行數:44,代碼來源:MethodSecurityInteceptor.java

示例11: RemoteInvocation

import org.aopalliance.intercept.MethodInvocation; //導入方法依賴的package包/類
/**
 * Create a new RemoteInvocation for the given AOP method invocation.
 * @param methodInvocation the AOP invocation to convert
 */
public RemoteInvocation(MethodInvocation methodInvocation) {
	this.methodName = methodInvocation.getMethod().getName();
	this.parameterTypes = methodInvocation.getMethod().getParameterTypes();
	this.arguments = methodInvocation.getArguments();
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:10,代碼來源:RemoteInvocation.java


注:本文中的org.aopalliance.intercept.MethodInvocation.getArguments方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。