generate method

String generate()

Implementation

String generate() {
  final boxIter = BoxIter();
  final sizeIter = SizeIter();
  final bgIter = BackgroundIter();
  final borderIter = BorderIter();
  final paddingIter = PaddingIter();
  final marginIter = MarginIter();
  final roundedIter = RoundedIter();
  final aspectIter = AspectIter();
  final opacityIter = OpacityIter();
  final safeAreaIter = SafeAreaIter();

  for (var cls in clsItem.clsSet) {
    boxIter.iter(cls);
    sizeIter.iter(cls);
    bgIter.iter(cls);
    borderIter.iter(cls);
    paddingIter.iter(cls);
    marginIter.iter(cls);
    roundedIter.iter(cls);
    aspectIter.iter(cls);
    opacityIter.iter(cls);
    safeAreaIter.iter(cls);
  }

  var current = boxIter.generate();
  current = "(children?.length ?? 0) > 0 ? $current : const SizedBox()";
  current = safeAreaIter.wrapperInner(current);

  final container = CodeConstrutor("Container")
    ..add("margin", marginIter.generate())
    ..add("padding", paddingIter.generate())
    ..add("width", sizeIter.width)
    ..add("height", sizeIter.height)
    ..add("constraints", sizeIter.genConstraints())
    ..add(
        "decoration",
        (CodeConstrutor("BoxDecoration")
              ..add("color", bgIter.generate())
              ..add("border", borderIter.generate())
              ..add("borderRadius", roundedIter.generate()))
            .maybeGenerate());

  if (container.hasFields()) {
    container.add("child", current);
    current = container.generate();
  }

  current = aspectIter.wrapper(current);
  current = opacityIter.wrapper(current);
  current = safeAreaIter.wrapperOuter(current);

  return "class $constructor extends EasyDivImpl {\n"
      "  const $constructor({\n"
      "    super.key, required super.className, required super.children,\n"
      "    required super.option,\n"
      "  });\n"
      "  @override\n"
      "  Widget build(BuildContext context) {\n"
      "    return $current;\n"
      "  }\n"
      "}";
}