code: public void set(SourceCodeLocation sourceCodeLocation, String name, Value value) {
          if (name.length() > 1) {
              int dot;
              if (name.charAt(0) == LPAREN) {
                  int start = name.indexOf(RPAREN);
                  dot = name.indexOf(DOT, start);
              } else {
                  dot = name.indexOf(DOT);
              }
              if (dot > 0) {
                  String fieldName = name.substring(0, dot);
                  String rest = name.substring(dot + 1);
                  Key key = createKey(fieldName);
                  DynamicMessage msg;
                  if (fields.containsKey(key)) {
                      msg = getChildMessage(value, key);
                  } else {
                      msg = new DynamicMessage();
                      fields.put(key, Value.createMessage(sourceCodeLocation, msg));
                  }
                  msg.set(sourceCodeLocation, rest, value);
              } else {
                  Key key = createKey(name);
                  set(key, value);
              }
          } else {
              Key key = Key.field(name);
              set(key, value);
          }
      }
docs: Set field of an option to a given value.