当前位置: 首页>>代码示例>>Java>>正文


Java Component.call方法代码示例

本文整理汇总了Java中lucee.runtime.Component.call方法的典型用法代码示例。如果您正苦于以下问题:Java Component.call方法的具体用法?Java Component.call怎么用?Java Component.call使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在lucee.runtime.Component的用法示例。


在下文中一共展示了Component.call方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: call

import lucee.runtime.Component; //导入方法依赖的package包/类
public static Object call(ConfigWeb config,Component cfc, String methodName, Object... arguments) {
	try {
		
		PageContext pc = ThreadLocalPageContext.get();
		if(pc==null) {
			//PageSource ps = cfc.getPageSource();
			pc=ThreadUtil.createPageContext(
					config, 
					DevNullOutputStream.DEV_NULL_OUTPUT_STREAM, 
					"Lucee", "/", "", null, null, null, null);
			pc.addPageSource(cfc.getPageSource(), true);
			
		}
		
		return cfc.call(
				ThreadLocalPageContext.get(), 
				methodName, 
				arguments);
	} catch (PageException pe) {
		throw new PageRuntimeException(pe);
	}
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:23,代码来源:JavaProxy.java

示例2: setPropeties

import lucee.runtime.Component; //导入方法依赖的package包/类
public static void setPropeties(PageContext pc, Component cfc, Struct properties, boolean ignoreNotExisting) throws PageException { 
	if(properties==null) return;
	
	// argumentCollection
	if(properties.size()==1 && properties.containsKey(KeyConstants._argumentCollection) && !cfc.containsKey(KeyConstants._setArgumentCollection)) {
		properties=Caster.toStruct(properties.get(KeyConstants._argumentCollection));
	}
	
	Iterator<Entry<Key, Object>> it = properties.entryIterator();
	Entry<Key, Object> e;
	while(it.hasNext()){
		e = it.next();
		if(ignoreNotExisting) {
			try {
				cfc.call(pc, "set"+e.getKey().getString(), new Object[]{e.getValue()});
			}
			catch(Throwable t){
				ExceptionUtil.rethrowIfNecessary(t);
			}
		}
		else {
			cfc.call(pc, "set"+e.getKey().getString(), new Object[]{e.getValue()});
		}
	}
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:26,代码来源:EntityNew.java

示例3: invoke

import lucee.runtime.Component; //导入方法依赖的package包/类
public static void invoke(Key name, Component cfc, Struct data, Object arg) {
   	if(cfc==null) return;
   	
	try {
		PageContext pc = ThreadLocalPageContext.get();
		Object[] args;
		if(data==null) {
			args=arg!=null?new Object[]{arg}:new Object[]{};
		}
		else {
			args=arg!=null?new Object[]{arg,data}:new Object[]{data};
		}
		cfc.call(pc, name, args);
	}
	catch (PageException pe) {
		throw new PageRuntimeException(pe);
	}
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:19,代码来源:EventListener.java

示例4: call

import lucee.runtime.Component; //导入方法依赖的package包/类
public static Object call(ConfigWeb config,Component cfc, String methodName, Object... arguments) {
	boolean unregister=false;
	PageContext pc=null;
	try {
		pc = ThreadLocalPageContext.get();
		// create PageContext if necessary
		if(pc==null) {
			pc=ThreadUtil.createPageContext(
					config, 
					DevNullOutputStream.DEV_NULL_OUTPUT_STREAM, 
					Constants.NAME, "/", "", null, null, null, null, null,true,-1);
			unregister=true;
			pc.addPageSource(cfc.getPageSource(), true);
		}
		
		return cfc.call(pc, methodName, arguments);
	}
	catch (PageException pe) {
		throw new PageRuntimeException(pe);
	}
	finally{
		if(unregister)config.getFactory().releaseLuceePageContext(pc, true);
	}
}
 
开发者ID:lucee,项目名称:Lucee,代码行数:25,代码来源:JavaProxy.java

示例5: setPropeties

import lucee.runtime.Component; //导入方法依赖的package包/类
public static void setPropeties(PageContext pc, Component c, Struct properties, boolean ignoreNotExisting) throws PageException { 
	if(properties==null) return;
	
	// argumentCollection
	if(properties.size()==1 && properties.containsKey(KeyConstants._argumentCollection) && !c.containsKey(KeyConstants._setArgumentCollection)) {
		properties=Caster.toStruct(properties.get(KeyConstants._argumentCollection));
	}
	
	Iterator<Entry<Key, Object>> it = properties.entryIterator();
	Entry<Key, Object> e;
	while(it.hasNext()){
		e = it.next();
		if(ignoreNotExisting) {
			try {
				c.call(pc, "set"+e.getKey().getString(), new Object[]{e.getValue()});
			}
			catch(Throwable t) {ExceptionUtil.rethrowIfNecessary(t);}
		}
		else {
			c.call(pc, "set"+e.getKey().getString(), new Object[]{e.getValue()});
		}
	}
}
 
开发者ID:lucee,项目名称:Lucee,代码行数:24,代码来源:EntityNew.java

示例6: call

import lucee.runtime.Component; //导入方法依赖的package包/类
private Object call(Component app, PageContext pc, Collection.Key eventName, Object[] args, boolean catchAbort) throws PageException {
	try {
		return app.call(pc, eventName, args);
	} 
	catch (PageException pe) {
		if(Abort.isSilentAbort(pe)) {
			if(catchAbort)
				return ( pe instanceof PostContentAbort) ? Boolean.TRUE : Boolean.FALSE;

			throw pe;
		}
		throw new ModernAppListenerException(pe,eventName.getString());
	}
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:15,代码来源:ModernAppListener.java

示例7: _invoke

import lucee.runtime.Component; //导入方法依赖的package包/类
private static Object _invoke(String name, Object[] args) throws PageException {
	Key key = Caster.toKey(name);
	Component c=component.get();
	PageContext p=pagecontext.get();
	MessageContext mc = messageContext.get();
	if(c==null) throw new ApplicationException("missing component");
	if(p==null) throw new ApplicationException("missing pagecontext");
	
	UDF udf = Caster.toFunction(c.get(p,key,null),null);
	FunctionArgument[] fa=null;
	if(udf!=null) fa = udf.getFunctionArguments();
	
	for(int i=0;i<args.length;i++) {
		if(fa!=null && i<fa.length && fa[i].getType()==CFTypes.TYPE_UNKNOW) {
			args[i]=AxisCaster.toLuceeType(p,fa[i].getTypeAsString(),args[i]);
		}
		else
			args[i]=AxisCaster.toLuceeType(p,args[i]);
	}
		
	
	// return type
	String rtnType=udf!=null?udf.getReturnTypeAsString():"any";
	
	
	Object rtn = c.call(p, key, args);
	
	// cast return value to Axis type
	try {
		RPCServer server = RPCServer.getInstance(p.getId(),p.getServletContext());
		TypeMapping tm = mc!=null?mc.getTypeMapping():TypeMappingUtil.getServerTypeMapping(server.getEngine().getTypeMappingRegistry());
		rtn=Caster.castTo(p, rtnType, rtn, false);
		Class<?> clazz = Caster.cfTypeToClass(rtnType);
		return AxisCaster.toAxisType(tm,rtn,clazz.getComponentType()!=null?clazz:null);
	} 
	catch (Throwable t) {
		ExceptionUtil.rethrowIfNecessary(t);
		throw Caster.toPageException(t);
	}
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:41,代码来源:ComponentController.java

示例8: toAMFObject

import lucee.runtime.Component; //导入方法依赖的package包/类
protected ASObject toAMFObject(Component cfc) throws PageException {
	ASObject aso = new ASObject();
	aso.setType(cfc.getCallName());
	
	
	Component c=ComponentSpecificAccess.toComponentSpecificAccess(methodAccessLevel,cfc);

	Property[] prop = cfc.getProperties(false);
	Object v; UDF udf;
   	if(prop!=null)for(int i=0;i<prop.length;i++) {
   		boolean remotingFetch = Caster.toBooleanValue(prop[i].getDynamicAttributes().get(REMOTING_FETCH,Boolean.TRUE),true);
   		if(!remotingFetch) continue;
   		
   		v=cfc.get(prop[i].getName(),null);
   		if(v==null){
   			v=c.get("get"+prop[i].getName(),null);
    		if(v instanceof UDF){
            	udf=(UDF) v;
            	if(udf.getReturnType()==CFTypes.TYPE_VOID) continue;
            	if(udf.getFunctionArguments().length>0) continue;
            	
            	try {
					v=c.call(ThreadLocalPageContext.get(), udf.getFunctionName(), ArrayUtil.OBJECT_EMPTY);
				} catch (PageException e) {
					continue;
				}
            }
   		}
   		
   		aso.put(toString(prop[i].getName(),forceCFCLower), toAMFObject(v));
   	}
   	return aso;
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:34,代码来源:ClassicAMFCaster.java

示例9: _invoke

import lucee.runtime.Component; //导入方法依赖的package包/类
public static Object _invoke(String name, Object[] args) throws PageException {
	Key key = Caster.toKey(name);
	Component c=component.get();
	PageContext p=pagecontext.get();
	MessageContext mc = messageContext.get();
	if(c==null) throw new ApplicationException("missing component");
	if(p==null) throw new ApplicationException("missing pagecontext");
	
	UDF udf = Caster.toFunction(c.get(p,key,null),null);
	FunctionArgument[] fa=null;
	if(udf!=null) fa = udf.getFunctionArguments();
	
	for(int i=0;i<args.length;i++) {
		if(fa!=null && i<fa.length && fa[i].getType()==CFTypes.TYPE_UNKNOW) {
			args[i]=AxisCaster.toLuceeType(p,fa[i].getTypeAsString(),args[i]);
		}
		else
			args[i]=AxisCaster.toLuceeType(p,args[i]);
	}
		
	
	// return type
	String rtnType=udf!=null?udf.getReturnTypeAsString():"any";
	
	
	Object rtn = c.call(p, key, args);
	
	// cast return value to Axis type
	try {
		RPCServer server = RPCServer.getInstance(p.getId(),p,p.getServletContext());
		TypeMapping tm = mc!=null?mc.getTypeMapping():TypeMappingUtil.getServerTypeMapping(server.getEngine().getTypeMappingRegistry());
		rtn=Caster.castTo(p, rtnType, rtn, false);
		Class<?> clazz = Caster.cfTypeToClass(rtnType);
		return AxisCaster.toAxisType(tm,rtn,clazz.getComponentType()!=null?clazz:null);
	} 
	catch(Throwable t) {
		ExceptionUtil.rethrowIfNecessary(t);
		throw Caster.toPageException(t);
	}
}
 
开发者ID:lucee,项目名称:Lucee,代码行数:41,代码来源:ComponentController.java

示例10: call

import lucee.runtime.Component; //导入方法依赖的package包/类
public static Component call(PageContext pc , String path, Object args) throws PageException {
	
	// first argument is the component itself
	Component c = CreateObject.doComponent(pc, path);
	
	if(c.get(KeyConstants._init,null) instanceof UDF) {
		// no arguments
		if(args==null) {
			c.call(pc, KeyConstants._init, EMPTY);
		}
		// named arguments
		else if(Decision.isStruct(args)) {
			Struct sct=Caster.toStruct(args);
			c.callWithNamedValues(pc, KeyConstants._init, sct);
		}
		// not named arguments
		else if(Decision.isArray(args)) {
			Object[] arr=Caster.toNativeArray(args);
			c.call(pc, KeyConstants._init, arr);
		}
		else {
			c.call(pc, KeyConstants._init, new Object[]{args});
		}
	}
	
	return c;
}
 
开发者ID:lucee,项目名称:Lucee,代码行数:28,代码来源:CreateComponent.java

示例11: toAMFObject

import lucee.runtime.Component; //导入方法依赖的package包/类
protected ASObject toAMFObject(Component cfc) throws PageException {
	// add properties
	ASObject aso = doProperties?super.toAMFObject(cfc):new ASObject();
	ComponentSpecificAccess cw=ComponentSpecificAccess.toComponentSpecificAccess(Component.ACCESS_REMOTE,cfc);
	
	Iterator it = cfc.entrySet().iterator();
       Map.Entry entry;
       Object v;
       Collection.Key k;
       UDF udf;
       String name;
       while(it.hasNext()) {
           entry=(Entry) it.next();
           k=KeyImpl.toKey(entry.getKey());
           v=entry.getValue();
           
           // add getters
           if(v instanceof UDF){
           	if(!doGetters) continue;
           	udf=(UDF) v;
           	name=udf.getFunctionName();
           	if(!StringUtil.startsWithIgnoreCase(name, "get"))continue;
           	if(udf.getReturnType()==CFTypes.TYPE_VOID) continue;
           	if(udf.getFunctionArguments().length>0) continue;
           	
           	try {
				v=cfc.call(ThreadLocalPageContext.get(), name, ArrayUtil.OBJECT_EMPTY);
			} catch (PageException e) {
				continue;
			}
           	name=name.substring(3);
           	
           	aso.put(toString(name,forceCFCLower), toAMFObject(v));
           }
           
           // add remote data members
           if(cw!=null && doRemoteValues){
           	v=cw.get(k,null);
           	if(v!=null)aso.put(toString(k,forceCFCLower), toAMFObject(v));
           }
       }
       return aso;
}
 
开发者ID:lucee,项目名称:Lucee4,代码行数:44,代码来源:ModernAMFCaster.java


注:本文中的lucee.runtime.Component.call方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。