static boolean containsAttributeValue()

in codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/DocumentClientUtils.java [87:131]


    static boolean containsAttributeValue(
          Model model,
          SymbolProvider symbolProvider,
          MemberShape member,
          Set<String> parents
    ) {
      Shape memberTarget = model.expectShape(member.getTarget());
      if (memberTarget.isStructureShape()) {
          if (!parents.contains(symbolProvider.toMemberName(member))) {
              parents.add(symbolProvider.toMemberName(member));
              Collection<MemberShape> structureMemberList = ((StructureShape) memberTarget).getAllMembers().values();
              for (MemberShape structureMember : structureMemberList) {
                  if (!parents.contains(symbolProvider.toMemberName(structureMember))
                          && containsAttributeValue(model, symbolProvider, structureMember, parents)) {
                      return true;
                  }
              }

          }
      } else if (memberTarget.isUnionShape()) {
          if (symbolProvider.toSymbol(memberTarget).getName().equals("AttributeValue")) {
              return true;
          } else if (!parents.contains(symbolProvider.toMemberName(member))) {
              parents.add(symbolProvider.toMemberName(member));
              Collection<MemberShape> unionMemberList = ((UnionShape) memberTarget).getAllMembers().values();
              for (MemberShape unionMember : unionMemberList) {
                  if (!parents.contains(symbolProvider.toMemberName(unionMember))
                          && containsAttributeValue(model, symbolProvider, unionMember, parents)) {
                      return true;
                  }
              }
          }
      } else if (memberTarget.isMapShape()) {
          MemberShape mapMember = ((MapShape) memberTarget).getValue();
          if (containsAttributeValue(model, symbolProvider, mapMember, parents)) {
              return true;
          }
      } else if (memberTarget instanceof CollectionShape) {
          MemberShape collectionMember = ((CollectionShape) memberTarget).getMember();
          if (containsAttributeValue(model, symbolProvider, collectionMember, parents)) {
              return true;
          }
      }
      return false;
    }