@Nullable
  CodeStyleFieldAccessor<?,?> createAccessor(@NotNull Object codeStyleObject) {
    if (mayHaveAccessor()) {
      return switch (getValueType()) {
        case BOOLEAN -> {
          if ("USE_TAB_CHARACTER".equals(myField.getName())) {
            yield new TabCharPropertyAccessor(codeStyleObject, myField);
          }
          yield new BooleanAccessor(codeStyleObject, myField);
        }
        case INT -> {
          if ("WRAP_ON_TYPING".equals(myField.getName())) {
            yield new WrapOnTypingAccessor(codeStyleObject, myField);
          }
          yield new IntegerAccessor(codeStyleObject, myField);
        }
        case STRING -> {
          CommaSeparatedValues annotation = myField.getAnnotation(CommaSeparatedValues.class);
          if (annotation != null) {
            yield new CommaSeparatedValuesAccessor(codeStyleObject, myField);
          }
          yield new StringAccessor(codeStyleObject, myField);
        }
        case WRAP -> new WrappingAccessor(codeStyleObject, myField);
        case BRACE_STYLE -> new BraceStyleAccessor(codeStyleObject, myField);
        case FORCE_BRACES -> new ForceBracesAccessor(codeStyleObject, myField);
        case ENUM -> new EnumPropertyAccessor(codeStyleObject, myField);
        case OTHER -> null;
      };
    }
    return null;
  }
@Nullable
  CodeStyleFieldAccessor<?,?> createAccessor(@NotNull Object codeStyleObject)