Browse Source

Extract native field generation logic into its own method.

pull/1/head
triton 12 years ago
parent
commit
1b2b428e22
  1. 37
      src/Generator/Generators/CLI/CLIHeadersTemplate.cs

37
src/Generator/Generators/CLI/CLIHeadersTemplate.cs

@ -215,23 +215,7 @@ namespace Cxxi.Generators.CLI
if (@class.IsRefType) if (@class.IsRefType)
{ {
Class baseClass = null; GenerateClassNativeField(@class, nativeType);
if (@class.HasBaseClass)
baseClass = @class.Bases[0].Class;
var hasRefBase = baseClass != null && baseClass.IsRefType
&& !baseClass.Ignore;
var hasIgnoredBase = baseClass != null && baseClass.Ignore;
if (!@class.HasBase || !hasRefBase || hasIgnoredBase)
{
PushIndent();
WriteLine("property {0} NativePtr;", nativeType);
PopIndent();
NewLine();
}
} }
GenerateClassConstructors(@class, nativeType); GenerateClassConstructors(@class, nativeType);
@ -253,6 +237,25 @@ namespace Cxxi.Generators.CLI
WriteLine("};"); WriteLine("};");
} }
public void GenerateClassNativeField(Class @class, string nativeType)
{
Class baseClass = null;
if (@class.HasBaseClass)
baseClass = @class.Bases[0].Class;
var hasRefBase = baseClass != null && baseClass.IsRefType
&& !baseClass.Ignore;
var hasIgnoredBase = baseClass != null && baseClass.Ignore;
if (!@class.HasBase || !hasRefBase || hasIgnoredBase)
{
WriteLineIndent("property {0} NativePtr;", nativeType);
NewLine();
}
}
public void GenerateClassGenericMethods(Class @class) public void GenerateClassGenericMethods(Class @class)
{ {
var printer = TypePrinter as CLITypePrinter; var printer = TypePrinter as CLITypePrinter;

Loading…
Cancel
Save