public static String getSetterDefaultCoreCodeForProperty(DMProperty property) {
    StringBuilder sb = new StringBuilder();
    sb.append(" {" + StringUtils.LINE_SEPARATOR);
    sb.append(
        "\tsetObjectForKey("
            + property.getNameAsMethodArgument()
            + ", \""
            + property.getName()
            + "\");");
    sb.append(StringUtils.LINE_SEPARATOR + "}");

    return sb.toString();
  }
  /**
   * Create a property with the specified key and the specified type if it does not exist yet
   *
   * @param key
   * @param type
   * @return the created property or the existing one
   */
  private DMProperty createPropertyForProcessKey(String key, Class<? extends Object> type) {
    DMProperty property = getDMProperty(key);
    if (property == null) {
      property =
          createDMProperty(
              key,
              DMType.makeResolvedDMType(type, getProject()),
              DMPropertyImplementationType.PUBLIC_ACCESSORS_ONLY);
      property.setIsReadOnly(true);
    }

    return property;
  }
  public static String getGetterDefaultCoreCodeForProperty(DMProperty property) {
    StringBuilder sb = new StringBuilder();
    sb.append(" {" + StringUtils.LINE_SEPARATOR);
    sb.append(
        "\treturn ("
            + property.getAccessorTypeAsString()
            + ")objectForKey(\""
            + property.getName()
            + "\");");
    sb.append(StringUtils.LINE_SEPARATOR + "}");

    return sb.toString();
  }