public static void populateInterfaceElements ( JvmDeclaredType jvmElement , Map < ActionPrototype , JvmOperation > operations , Map < String , JvmField > fields , IActionPrototypeProvider sarlSignatureProvider ) { for ( final JvmFeature feature : jvmElement . getAllFeatures ( ) ) { if ( ! "java.lang.Object" . equals ( feature . getDeclaringType ( ) . getQualifiedName ( ) ) ) { //$NON-NLS-1$ if ( operations != null && feature instanceof JvmOperation ) { final JvmOperation operation = ( JvmOperation ) feature ; final ActionParameterTypes sig = sarlSignatureProvider . createParameterTypesFromJvmModel ( operation . isVarArgs ( ) , operation . getParameters ( ) ) ; final ActionPrototype actionKey = sarlSignatureProvider . createActionPrototype ( operation . getSimpleName ( ) , sig ) ; operations . put ( actionKey , operation ) ; } else if ( fields != null && feature instanceof JvmField ) { fields . put ( feature . getSimpleName ( ) , ( JvmField ) feature ) ; } } } }
Analyzing the type hierarchy of the given interface and extract hierarchy information .