<?xml version="1.0" encoding="UTF-8" ?>

<OPTIONSCHEMA id="StarUML.CSharp">
  <HEADER>
    <CAPTION>C#</CAPTION>
    <DESCRIPTION>C# Code generation &amp; Reverse engineering Option</DESCRIPTION>
  </HEADER>

  <BODY>
    <OPTIONCATEGORY>
      <CAPTION>Code Generation</CAPTION>
      <DESCRIPTION>Contains options for generating C# code from modeling elements.</DESCRIPTION>

      <OPTIONCLASSIFICATION>
        <CAPTION>General</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="CREATE_WITH_NO_PROFILE">
           <CAPTION>Generate codes even when there is no profile</CAPTION>
           <DESCRIPTION>Specifies whether to generate codes even when C# profile is not loaded in the project (not recommended).</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
      </OPTIONCLASSIFICATION>

      <OPTIONCLASSIFICATION>
        <CAPTION>Code Generation</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="CREATE_FILE_MEMBER">
           <CAPTION>Generate 1 file each for Class, Struct, Interface, and Enum</CAPTION>
           <DESCRIPTION>Specifies whether to generate 1 file each for 1 member (Class, Struct, Interface, and Enum).</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_EMPTY_ASSOC_END">
           <CAPTION>Generate unnamed AssociationEnd</CAPTION>
           <DESCRIPTION>Generates unnamed AssociationEnd as a reference type field for C# member. In this case, the field identifier is indicated as "UnspecifiedType" with a number at the end.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_CSHARP_DOC">
           <CAPTION>Generate C# Doc</CAPTION>
           <DESCRIPTION>Specifies whether to generate modeling element documentation as C# Doc.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_CSHARP_DOC_EMPTY">
           <CAPTION>Generate empty C# Doc</CAPTION>
           <DESCRIPTION>If checked, C# Doc is generated even when the modeling element documentation does not have any values (empty).</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
      </OPTIONCLASSIFICATION>

      <OPTIONCLASSIFICATION>
        <CAPTION>Code Style</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="SPACE_INSTEAD_TAB">
           <CAPTION>Insert tabs as spaces</CAPTION>
           <DESCRIPTION>Uses space instead of tab for indentation.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-RANGE key="SPACE_MAGNITUDE">
           <CAPTION>Tab width</CAPTION>
           <DESCRIPTION>Specifies the number of spaces to be used when inserting tabs as spaces.</DESCRIPTION>
           <DEFAULTVALUE>4</DEFAULTVALUE>
           <MINVALUE>0</MINVALUE>
           <MAXVALUE>16</MAXVALUE>
           <STEP>1</STEP>
        </OPTIONITEM-RANGE>
        <OPTIONITEM-BOOLEAN key="BRACE_PUT_NEWLINE">
           <CAPTION>Place the opening curly brace in the new line</CAPTION>
           <DESCRIPTION>Places the opening curly brace "{" in the new line.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
      </OPTIONCLASSIFICATION>
      <OPTIONCLASSIFICATION>
        <CAPTION>File Header</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-TEXT key="HEADER_COMMENT">
           <CAPTION>File Header Comments</CAPTION>
           <DESCRIPTION>Adds the comments in the beginning of the source file.</DESCRIPTION>
<DEFAULTVALUE>//
//
//  Generated by StarUML(tm) C# Add-In
//
//  @@ Project : @p
//  @@ File Name : @f
//  @@ Date : @d
//  @@ Author : @a
//
//
</DEFAULTVALUE>
        </OPTIONITEM-TEXT>
      </OPTIONCLASSIFICATION>
    </OPTIONCATEGORY>

    <OPTIONCATEGORY>
      <CAPTION>Reverse Engineering</CAPTION>
      <DESCRIPTION>Contains options for reverse engineering C# code into model information.</DESCRIPTION>

      <OPTIONCLASSIFICATION>
        <CAPTION>Model Generation</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="CREATE_PUBLIC_MEMBER">
           <CAPTION>Generate public member</CAPTION>
           <DESCRIPTION>Specifies whether to generate class and interface members with public visibility.</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_INTERNAL_MEMBER">
           <CAPTION>Generate internal member</CAPTION>
           <DESCRIPTION>Specifies whether to generate class and interface members with internal visibility.</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_PROTECTED_MEMBER">
           <CAPTION>Generate protected member</CAPTION>
           <DESCRIPTION>Specifies whether to generate class and interface members with protected visibility.</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="CREATE_PRIVATE_MEMBER">
           <CAPTION>Generate private member</CAPTION>
           <DESCRIPTION>Specifies whether to generate class and interface members with private visibility.</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="OMIT_INITIAL_VALUE">
           <CAPTION>Omit initial value for fields</CAPTION>
           <DESCRIPTION>Does not include the field initial value in the Attribute model information.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="REVERSE_CSHARPDOC">
           <CAPTION>Generate C# Doc as documentation</CAPTION>
           <DESCRIPTION>Reads C# Doc in the source code and registers it as documentation information. C# Doc of each method is analyzed for tag information and entered as documentation information for each parameter of the operation model.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="FIELD_AS_ASSOC">
           <CAPTION>Generate fields as Association</CAPTION>
           <DESCRIPTION>Analyzes the field information in the source code to establish association relationships with the respective field type models. If unchecked, field information is generated as attribute for the respective class model.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
      </OPTIONCLASSIFICATION>

      <OPTIONCLASSIFICATION>
        <CAPTION>Diagram</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="CREATE_OVERVIEW">
           <CAPTION>Generate Overview diagram</CAPTION>
           <DESCRIPTION>Specifies whether to generate the Overview diagram for the generated model. If unchecked, the following diagram and view options are ignored.</DESCRIPTION>
           <DEFAULTVALUE>True</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="ENLARGE_DIAGRAM">
           <CAPTION>Fit the diagram area to the generated view area</CAPTION>
           <DESCRIPTION>Enlarges the Overview diagram to fit the generated view area.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-STRING key="DIGRAM_NAME">
           <CAPTION>Diagram name</CAPTION>
           <DESCRIPTION>Specifies the Overview diagram name. The package name can be included in the diagram name by using %s (e.g. Overview of %s).</DESCRIPTION>
           <DEFAULTVALUE>Overview of %s</DEFAULTVALUE>
        </OPTIONITEM-STRING>
      </OPTIONCLASSIFICATION>

      <OPTIONCLASSIFICATION>
        <CAPTION>View</CAPTION>
        <DESCRIPTION/>
        <OPTIONITEM-BOOLEAN key="SUPRESS_ATTR">
           <CAPTION>Suppress the Attribute compartment of Class</CAPTION>
           <DESCRIPTION>Suppresses the Attribute compartment of the Class View when generating the Overview diagram.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="SUPRESS_OPER">
           <CAPTION>Suppress the Operation compartment of Class</CAPTION>
           <DESCRIPTION>Suppresses the Operation compartment of the Class View when generating the Overview diagram.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="HIDE_OPER_SIGNATURE">
           <CAPTION>Hide operation signature</CAPTION>
           <DESCRIPTION>Hides the operation signature when generating the Overview diagram.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
        <OPTIONITEM-BOOLEAN key="INHERITANCE_ONLY">
           <CAPTION>Generate Generalization and Realization views only for relations</CAPTION>
           <DESCRIPTION>Generates generalization and realization views only for relations when generating the Overview diagram. When used appropriately with other view options, this option is very useful for drawing the inheritance relations of overall classes and interfaces within the package.</DESCRIPTION>
           <DEFAULTVALUE>False</DEFAULTVALUE>
        </OPTIONITEM-BOOLEAN>
      </OPTIONCLASSIFICATION>

    </OPTIONCATEGORY>

  </BODY>
</OPTIONSCHEMA>
