Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasmcdonald3 committed Jul 30, 2024
1 parent 6ca036e commit 29c3fcd
Showing 1 changed file with 128 additions and 118 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,129 +9,139 @@
import software.amazon.smithy.python.codegen.PythonWriter;

public class ConstraintUtils {
public static void writeInitMethodConstraintsChecksForMember(PythonWriter writer, Model model, MemberShape member, String memberName) {
// RangeTrait
Shape targetShape = model.expectShape(member.getTarget());
if (targetShape.hasTrait(RangeTrait.class)) {
RangeTrait rangeTrait = targetShape.getTrait(RangeTrait.class).get();
if (rangeTrait.getMin().isPresent()) {
writeRangeTraitMinCheckForMember(writer, model, member, memberName, rangeTrait);
}
if (rangeTrait.getMax().isPresent()) {
writeRangeTraitMaxCheckForMember(writer, model, member, memberName, rangeTrait);
}
}

// LengthTrait
if (targetShape.hasTrait(LengthTrait.class)) {
LengthTrait lengthTrait = targetShape.getTrait(LengthTrait.class).get();
if (lengthTrait.getMin().isPresent()) {
writeLengthTraitMinCheckForMember(writer, memberName, lengthTrait);
}
if (lengthTrait.getMax().isPresent()) {
writeLengthTraitMaxCheckForMember(writer, memberName, lengthTrait);
}
}
public static void writeInitMethodConstraintsChecksForMember(
PythonWriter writer, Model model, MemberShape member, String memberName) {
// RangeTrait
Shape targetShape = model.expectShape(member.getTarget());
if (targetShape.hasTrait(RangeTrait.class)) {
RangeTrait rangeTrait = targetShape.getTrait(RangeTrait.class).get();
if (rangeTrait.getMin().isPresent()) {
writeRangeTraitMinCheckForMember(writer, model, member, memberName, rangeTrait);
}
if (rangeTrait.getMax().isPresent()) {
writeRangeTraitMaxCheckForMember(writer, model, member, memberName, rangeTrait);
}
}

/**
* Write validation for {@link LengthTrait} min value. Called from __init__.
*
* @param memberName
* @param lengthTrait
*/
protected static void writeLengthTraitMinCheckForMember(PythonWriter writer, String memberName, LengthTrait lengthTrait) {
String min = ConstrainTraitUtils.LengthTraitUtils.min(lengthTrait);
writer.openBlock(
"if ($1L is not None) and (len($1L) < $2L):",
"",
memberName,
min,
() -> {
writer.write(
"""
raise ValueError("The size of $1L must be greater than or equal to $2L")
""",
memberName,
min);
});
// LengthTrait
if (targetShape.hasTrait(LengthTrait.class)) {
LengthTrait lengthTrait = targetShape.getTrait(LengthTrait.class).get();
if (lengthTrait.getMin().isPresent()) {
writeLengthTraitMinCheckForMember(writer, memberName, lengthTrait);
}
if (lengthTrait.getMax().isPresent()) {
writeLengthTraitMaxCheckForMember(writer, memberName, lengthTrait);
}
}
}

/**
* Write validation for {@link LengthTrait} max value. Called from __init__.
*
* @param memberName
* @param lengthTrait
*/
protected static void writeLengthTraitMaxCheckForMember(PythonWriter writer, String memberName, LengthTrait lengthTrait) {
String max = ConstrainTraitUtils.LengthTraitUtils.max(lengthTrait);
writer.openBlock(
"if ($1L is not None) and (len($1L) > $2L):",
"",
memberName,
max,
() -> {
writer.write(
"""
raise ValueError("The size of $1L must be less than or equal to $2L")
""",
memberName,
max);
});
}
/**
* Write validation for {@link LengthTrait} min value. Called from __init__.
*
* @param memberName
* @param lengthTrait
*/
protected static void writeLengthTraitMinCheckForMember(
PythonWriter writer, String memberName, LengthTrait lengthTrait) {
String min = ConstrainTraitUtils.LengthTraitUtils.min(lengthTrait);
writer.openBlock(
"if ($1L is not None) and (len($1L) < $2L):",
"",
memberName,
min,
() -> {
writer.write(
"""
raise ValueError("The size of $1L must be greater than or equal to $2L")
""",
memberName,
min);
});
}

/**
* Write validation for {@link RangeTrait} min value. Called from __init__.
*
* @param member
* @param memberName
* @param rangeTrait
*/
protected static void writeRangeTraitMinCheckForMember(
PythonWriter writer, Model model, MemberShape member, String memberName, RangeTrait rangeTrait) {
String min =
ConstrainTraitUtils.RangeTraitUtils.minAsShapeType(
model.expectShape(member.getTarget()), rangeTrait);
writer.openBlock(
"if ($1L is not None) and ($1L < $2L):",
"",
memberName,
min,
() -> {
writer.write(
"""
raise ValueError("$1L must be greater than or equal to $2L")
""",
memberName,
min);
});
}
/**
* Write validation for {@link LengthTrait} max value. Called from __init__.
*
* @param memberName
* @param lengthTrait
*/
protected static void writeLengthTraitMaxCheckForMember(
PythonWriter writer, String memberName, LengthTrait lengthTrait) {
String max = ConstrainTraitUtils.LengthTraitUtils.max(lengthTrait);
writer.openBlock(
"if ($1L is not None) and (len($1L) > $2L):",
"",
memberName,
max,
() -> {
writer.write(
"""
raise ValueError("The size of $1L must be less than or equal to $2L")
""",
memberName,
max);
});
}

/**
* Write validation for {@link RangeTrait} max value. Called from __init__.
*
* @param member
* @param memberName
* @param rangeTrait
*/
protected static void writeRangeTraitMaxCheckForMember(
PythonWriter writer, Model model, MemberShape member, String memberName, RangeTrait rangeTrait) {
String max =
ConstrainTraitUtils.RangeTraitUtils.maxAsShapeType(
model.expectShape(member.getTarget()), rangeTrait);
writer.openBlock(
"if ($1L is not None) and ($1L > $2L):",
"",
memberName,
max,
() -> {
writer.write(
"""
raise ValueError("$1L must be less than or equal to $2L")
""",
memberName,
max);
});
}
/**
* Write validation for {@link RangeTrait} min value. Called from __init__.
*
* @param member
* @param memberName
* @param rangeTrait
*/
protected static void writeRangeTraitMinCheckForMember(
PythonWriter writer,
Model model,
MemberShape member,
String memberName,
RangeTrait rangeTrait) {
String min =
ConstrainTraitUtils.RangeTraitUtils.minAsShapeType(
model.expectShape(member.getTarget()), rangeTrait);
writer.openBlock(
"if ($1L is not None) and ($1L < $2L):",
"",
memberName,
min,
() -> {
writer.write(
"""
raise ValueError("$1L must be greater than or equal to $2L")
""",
memberName,
min);
});
}

/**
* Write validation for {@link RangeTrait} max value. Called from __init__.
*
* @param member
* @param memberName
* @param rangeTrait
*/
protected static void writeRangeTraitMaxCheckForMember(
PythonWriter writer,
Model model,
MemberShape member,
String memberName,
RangeTrait rangeTrait) {
String max =
ConstrainTraitUtils.RangeTraitUtils.maxAsShapeType(
model.expectShape(member.getTarget()), rangeTrait);
writer.openBlock(
"if ($1L is not None) and ($1L > $2L):",
"",
memberName,
max,
() -> {
writer.write(
"""
raise ValueError("$1L must be less than or equal to $2L")
""",
memberName,
max);
});
}
}

0 comments on commit 29c3fcd

Please sign in to comment.