protected InferredPrototype createPrototype ( QualifiedActionName id , boolean isVarargs , FormalParameterProvider parameters ) { assert parameters != null ; final ActionParameterTypes key = new ActionParameterTypes ( isVarargs , parameters . getFormalParameterCount ( ) ) ; final Map < ActionParameterTypes , List < InferredStandardParameter > > ip = buildSignaturesForArgDefaultValues ( id . getDeclaringType ( ) , key . toActionPrototype ( id . getActionName ( ) ) . toActionId ( ) , parameters , key ) ; final List < InferredStandardParameter > op = ip . remove ( key ) ; final InferredPrototype proto = new DefaultInferredPrototype ( id , parameters , key , op , ip ) ; final String containerID = id . getContainerID ( ) ; Map < String , Map < ActionParameterTypes , InferredPrototype > > c = this . prototypes . get ( containerID ) ; if ( c == null ) { c = new TreeMap <> ( ) ; this . prototypes . put ( containerID , c ) ; } Map < ActionParameterTypes , InferredPrototype > list = c . get ( id . getActionName ( ) ) ; if ( list == null ) { list = new TreeMap <> ( ) ; c . put ( id . getActionName ( ) , list ) ; } list . put ( key , proto ) ; return proto ; }
Build and replies the inferred action signature for the element with the given ID . This function creates the different signatures according to the definition or not of default values for the formal parameters .