@@ -313,29 +313,31 @@ private static void ProcessRuleElement(EncodedTextWriter writer, IClass umlClass
313313 }
314314 else if ( targetProperty . QueryIsReferenceProperty ( ) )
315315 {
316- if ( assignmentElement . Value is NonTerminalElement nonTerminalElement )
316+ switch ( assignmentElement . Value )
317317 {
318- var previousCaller = ruleGenerationContext . CallerRule ;
319- ruleGenerationContext . CallerRule = nonTerminalElement ;
320- ProcessNonTerminalElement ( writer , targetProperty . Type as IClass , nonTerminalElement , $ "poco.{ targetPropertyName } ", ruleGenerationContext ) ;
321- ruleGenerationContext . CallerRule = previousCaller ;
322- }
323- else if ( assignmentElement . Value is ValueLiteralElement valueLiteralElement && valueLiteralElement . QueryIsQualifiedName ( ) )
324- {
325- writer . WriteSafeString ( $ "{ Environment . NewLine } if (poco.{ targetPropertyName } != null){ Environment . NewLine } ") ;
326- writer . WriteSafeString ( $ "{{{Environment.NewLine}") ;
327- writer . WriteSafeString ( $ "stringBuilder.Append(poco.{ targetPropertyName } .qualifiedName);{ Environment . NewLine } ") ;
328- writer . WriteSafeString ( "stringBuilder.Append(' ');" ) ;
329- writer . WriteSafeString ( $ "{ Environment . NewLine } }}") ;
330- }
331- else
332- {
333- writer . WriteSafeString ( "throw new System.NotSupportedException(\" Assigment of reference element not supported yet for this case\" );" ) ;
318+ case NonTerminalElement nonTerminalElement :
319+ {
320+ var previousCaller = ruleGenerationContext . CallerRule ;
321+ ruleGenerationContext . CallerRule = nonTerminalElement ;
322+ ProcessNonTerminalElement ( writer , targetProperty . Type as IClass , nonTerminalElement , $ "poco.{ targetPropertyName } ", ruleGenerationContext ) ;
323+ ruleGenerationContext . CallerRule = previousCaller ;
324+ break ;
325+ }
326+ case ValueLiteralElement valueLiteralElement when valueLiteralElement . QueryIsQualifiedName ( ) :
327+ writer . WriteSafeString ( $ "{ Environment . NewLine } if (poco.{ targetPropertyName } != null){ Environment . NewLine } ") ;
328+ writer . WriteSafeString ( $ "{{{Environment.NewLine}") ;
329+ writer . WriteSafeString ( $ "stringBuilder.Append(poco.{ targetPropertyName } .qualifiedName);{ Environment . NewLine } ") ;
330+ writer . WriteSafeString ( "stringBuilder.Append(' ');" ) ;
331+ writer . WriteSafeString ( $ "{ Environment . NewLine } }}") ;
332+ break ;
333+ default :
334+ writer . WriteSafeString ( "throw new System.NotSupportedException(\" Assigment of reference element not supported yet for this case\" );" ) ;
335+ break ;
334336 }
335337 }
336338 else
337339 {
338- writer . WriteSafeString ( "throw new System.NotSupportedException( \" Assigment of non-string value not yet supported \" );") ;
340+ writer . WriteSafeString ( $ "stringBuilder.Append(poco. { targetPropertyName } .ToString() );") ;
339341 }
340342 }
341343 }
0 commit comments