Skip to content

Commit a7733e1

Browse files
committed
Avoid cyclic dependency between classes.
Move defaults out of property evaluation and into context.
1 parent 26f79f2 commit a7733e1

File tree

7 files changed

+28
-35
lines changed

7 files changed

+28
-35
lines changed

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/TargetCodeGeneratorLoader.java

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
*/
1616
package uk.co.real_logic.sbe.generation;
1717

18-
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
19-
import uk.co.real_logic.sbe.generation.java.JavaOutputManager;
2018
import uk.co.real_logic.sbe.generation.c.CGenerator;
2119
import uk.co.real_logic.sbe.generation.c.COutputManager;
20+
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
2221
import uk.co.real_logic.sbe.generation.cpp.CppGenerator;
2322
import uk.co.real_logic.sbe.generation.cpp.NamespaceOutputManager;
2423
import uk.co.real_logic.sbe.generation.golang.GolangGenerator;
2524
import uk.co.real_logic.sbe.generation.golang.GolangOutputManager;
2625
import uk.co.real_logic.sbe.generation.java.JavaGenerator;
26+
import uk.co.real_logic.sbe.generation.java.JavaOutputManager;
2727
import uk.co.real_logic.sbe.generation.rust.RustGenerator;
2828
import uk.co.real_logic.sbe.generation.rust.RustOutputManager;
2929
import uk.co.real_logic.sbe.ir.Ir;
@@ -121,26 +121,27 @@ public CodeGenerator newInstance(final Ir ir, final String outputDir)
121121
}
122122
};
123123

124-
/**
125-
* Returns the configured precedence checks.
126-
*
127-
* @return the configured precedence checks.
128-
*/
129-
public static PrecedenceChecks precedenceChecks()
124+
private static PrecedenceChecks precedenceChecks()
130125
{
131-
final boolean shouldGeneratePrecedenceChecks =
132-
Boolean.parseBoolean(System.getProperty(GENERATE_PRECEDENCE_CHECKS, "false"));
126+
final PrecedenceChecks.Context context = new PrecedenceChecks.Context();
133127

134-
final String precedenceChecksFlagName =
135-
System.getProperty(PRECEDENCE_CHECKS_FLAG_NAME, "SBE_ENABLE_PRECEDENCE_CHECKS");
128+
final String shouldGeneratePrecedenceChecks = System.getProperty(GENERATE_PRECEDENCE_CHECKS);
129+
if (shouldGeneratePrecedenceChecks != null)
130+
{
131+
context.shouldGeneratePrecedenceChecks(Boolean.parseBoolean(shouldGeneratePrecedenceChecks));
132+
}
136133

137-
final String precedenceChecksPropName =
138-
System.getProperty(JAVA_PRECEDENCE_CHECKS_PROPERTY_NAME, "sbe.enable.precedence.checks");
134+
final String precedenceChecksFlagName = System.getProperty(PRECEDENCE_CHECKS_FLAG_NAME);
135+
if (precedenceChecksFlagName != null)
136+
{
137+
context.precedenceChecksFlagName(precedenceChecksFlagName);
138+
}
139139

140-
final PrecedenceChecks.Context context = new PrecedenceChecks.Context()
141-
.shouldGeneratePrecedenceChecks(shouldGeneratePrecedenceChecks)
142-
.precedenceChecksFlagName(precedenceChecksFlagName)
143-
.precedenceChecksPropName(precedenceChecksPropName);
140+
final String precedenceChecksPropName = System.getProperty(JAVA_PRECEDENCE_CHECKS_PROPERTY_NAME);
141+
if (precedenceChecksPropName != null)
142+
{
143+
context.precedenceChecksPropName(precedenceChecksPropName);
144+
}
144145

145146
return PrecedenceChecks.newInstance(context);
146147
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/common/PrecedenceChecks.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ private FieldPrecedenceModel createModel(
166166
public static final class Context
167167
{
168168
private boolean shouldGeneratePrecedenceChecks;
169-
private String precedenceChecksFlagName;
170-
private String precedenceChecksPropName;
169+
private String precedenceChecksFlagName = "SBE_ENABLE_PRECEDENCE_CHECKS";
170+
private String precedenceChecksPropName = "sbe.enable.precedence.checks";
171171

172172
/**
173173
* Returns {@code true} if precedence checks should be generated; {@code false} otherwise.

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/cpp/CppGenerator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import uk.co.real_logic.sbe.PrimitiveType;
1919
import uk.co.real_logic.sbe.generation.CodeGenerator;
2020
import uk.co.real_logic.sbe.generation.Generators;
21-
import uk.co.real_logic.sbe.generation.TargetCodeGeneratorLoader;
2221
import uk.co.real_logic.sbe.generation.common.FieldPrecedenceModel;
2322
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
2423
import uk.co.real_logic.sbe.ir.Encoding;
@@ -72,7 +71,7 @@ public CppGenerator(final Ir ir, final boolean shouldDecodeUnknownEnumValues, fi
7271
this(
7372
ir,
7473
shouldDecodeUnknownEnumValues,
75-
TargetCodeGeneratorLoader.precedenceChecks(),
74+
PrecedenceChecks.newInstance(new PrecedenceChecks.Context()),
7675
outputManager
7776
);
7877
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import uk.co.real_logic.sbe.generation.CodeGenerator;
2020
import uk.co.real_logic.sbe.generation.TargetCodeGenerator;
21-
import uk.co.real_logic.sbe.generation.TargetCodeGeneratorLoader;
21+
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
2222
import uk.co.real_logic.sbe.ir.Ir;
2323

2424
/**
@@ -33,7 +33,7 @@ public CodeGenerator newInstance(final Ir ir, final String outputDir)
3333
{
3434
return new CSharpGenerator(
3535
ir,
36-
TargetCodeGeneratorLoader.precedenceChecks(),
36+
PrecedenceChecks.newInstance(new PrecedenceChecks.Context()),
3737
new CSharpNamespaceOutputManager(outputDir, ir.applicableNamespace()));
3838
}
3939
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/csharp/CSharpGenerator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import uk.co.real_logic.sbe.PrimitiveValue;
2121
import uk.co.real_logic.sbe.generation.CodeGenerator;
2222
import uk.co.real_logic.sbe.generation.Generators;
23-
import uk.co.real_logic.sbe.generation.TargetCodeGeneratorLoader;
2423
import uk.co.real_logic.sbe.generation.common.FieldPrecedenceModel;
2524
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
2625
import uk.co.real_logic.sbe.ir.Encoding;
@@ -72,7 +71,7 @@ public CSharpGenerator(final Ir ir, final OutputManager outputManager)
7271
{
7372
this(
7473
ir,
75-
TargetCodeGeneratorLoader.precedenceChecks(),
74+
PrecedenceChecks.newInstance(new PrecedenceChecks.Context()),
7675
outputManager
7776
);
7877
}

sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import uk.co.real_logic.sbe.PrimitiveType;
1919
import uk.co.real_logic.sbe.generation.CodeGenerator;
2020
import uk.co.real_logic.sbe.generation.Generators;
21-
import uk.co.real_logic.sbe.generation.TargetCodeGeneratorLoader;
2221
import uk.co.real_logic.sbe.generation.common.FieldPrecedenceModel;
2322
import uk.co.real_logic.sbe.generation.common.PrecedenceChecks;
2423
import uk.co.real_logic.sbe.ir.*;
@@ -131,7 +130,7 @@ public JavaGenerator(
131130
shouldGenerateInterfaces,
132131
shouldDecodeUnknownEnumValues,
133132
shouldSupportTypesPackageNames,
134-
TargetCodeGeneratorLoader.precedenceChecks(),
133+
PrecedenceChecks.newInstance(new PrecedenceChecks.Context()),
135134
outputManager
136135
);
137136
}

sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,7 @@ void shouldGenerateBasicMessage() throws Exception
260260
@Test
261261
void shouldGenerateWithoutPrecedenceChecksByDefault() throws Exception
262262
{
263-
final PrecedenceChecks.Context context = new PrecedenceChecks.Context()
264-
.shouldGeneratePrecedenceChecks(false)
265-
.precedenceChecksPropName("sbe.enable.precedence.checks")
266-
.precedenceChecksFlagName("SBE_ENABLE_PRECEDENCE_CHECKS");
263+
final PrecedenceChecks.Context context = new PrecedenceChecks.Context();
267264
final PrecedenceChecks precedenceChecks = PrecedenceChecks.newInstance(context);
268265
generator(precedenceChecks).generate();
269266

@@ -279,9 +276,7 @@ void shouldGenerateWithoutPrecedenceChecksByDefault() throws Exception
279276
void shouldGeneratePrecedenceChecksWhenEnabled() throws Exception
280277
{
281278
final PrecedenceChecks.Context context = new PrecedenceChecks.Context()
282-
.shouldGeneratePrecedenceChecks(true)
283-
.precedenceChecksPropName("sbe.enable.precedence.checks")
284-
.precedenceChecksFlagName("SBE_ENABLE_PRECEDENCE_CHECKS");
279+
.shouldGeneratePrecedenceChecks(true);
285280
final PrecedenceChecks precedenceChecks = PrecedenceChecks.newInstance(context);
286281
generator(precedenceChecks).generate();
287282

0 commit comments

Comments
 (0)