public ConversionType getConversionTypeFor ( XAbstractFeatureCall featureCall ) { if ( this . conversions == null ) { this . conversions = initMapping ( ) ; } final List < Object > receiver = new ArrayList <> ( ) ; AbstractExpressionGenerator . buildCallReceiver ( featureCall , this . keywords . getThisKeywordLambda ( ) , this . referenceNameLambda , receiver ) ; final String simpleName = AbstractExpressionGenerator . getCallSimpleName ( featureCall , this . logicalContainerProvider , this . simpleNameProvider , this . keywords . getNullKeywordLambda ( ) , this . keywords . getThisKeywordLambda ( ) , this . keywords . getSuperKeywordLambda ( ) , this . referenceNameLambda2 ) ; final List < Pair < FeaturePattern , FeatureReplacement > > struct = this . conversions . get ( getKey ( simpleName ) ) ; if ( struct != null ) { final String replacementId = featureCall . getFeature ( ) . getIdentifier ( ) ; final FeatureReplacement replacement = matchFirstPattern ( struct , replacementId , simpleName , receiver ) ; if ( replacement != null ) { if ( replacement . hasReplacement ( ) ) { return ConversionType . EXPLICIT ; } return ConversionType . FORBIDDEN_CONVERSION ; } } return ConversionType . IMPLICIT ; }
Replies the type of conversion for the given feature call .