public String resolveConstructor(
      DataObject dataObject, List<ObjectProperty> properties, String indent) {

    StringBuilder head = new StringBuilder();
    StringBuilder body = new StringBuilder();

    head.append(indent + "public " + dataObject.getName() + "(");

    if (properties != null && properties.size() > 0) {
      boolean isFirst = true;
      String propertyName;
      for (ObjectProperty property : properties) {
        if (!isFirst) {
          head.append(", ");
          body.append(EOL);
        }
        propertyName = toJavaVar(property.getName());
        head.append(resolveAttributeType(property));
        head.append(" ");
        head.append(propertyName);

        body.append(indent);
        body.append(indent);
        body.append("this.");
        body.append(propertyName);
        body.append(" = ");
        body.append(propertyName);
        body.append(";");

        isFirst = false;
      }
      body.append(EOL);
    }

    head.append(") {" + EOL);
    head.append(body);
    head.append(indent + "}");

    return head.toString();
  }