Beispiel #1
0
 String renderDropProperty(EntityProperty property, Configuration cfg) throws IOException {
   StringWriter out = new StringWriter();
   try {
     Map<String, Object> params = new HashMap<String, Object>();
     params.put("model", property.getModel());
     params.put("property", property);
     getTemplate(cfg, "sql", "model_drop_column").process(params, out);
   } catch (TemplateException err) {
     throw new IOException(err);
   }
   return out.toString().replaceAll("\\n", "").replaceAll("\\r", "");
 }
  @Override
  public void readData(DataInputStream in) throws IOException {
    super.readData(in);

    int length = in.readInt();
    EntityProperty[] properties = new EntityProperty[length];
    for (int i = 0; i < length; i++) {
      String name = readString(in);
      double value = in.readDouble();
      EntityProperty property = new EntityProperty(name, value);
      short modifiers = in.readShort();
      for (int j = 0; j < modifiers; j++) {
        long msb = in.readLong();
        long lsb = in.readLong();
        UUID uuid = new UUID(msb, lsb);
        double amount = in.readDouble();
        int operation = in.read();
        property.addModifier(uuid, amount, operation);
      }
      properties[i] = property;
    }
    this.properties = properties;
  }
Beispiel #3
0
  static void processViewModel(
      DbContext ctx, JSONObject entity, ViewEntityModel viewModel, EntityModelVersion version) {
    processProperties(entity, viewModel, ctx, version);

    for (EntityProperty property : viewModel.getAllProperties(version.getVersion())) {
      if ("_id".equals(property.getName())
          && (property.getModelAlias() == null || property.getModel() == null)) {
        property.setModel(viewModel.getRootModel());
        property.setModelAlias(viewModel.getRootAlias());
      }
    }
  }
Beispiel #4
0
  static void processProperties(
      JSONObject entity, ViewEntityModel viewModel, DbContext ctx, EntityModelVersion version) {
    JSONArray properties = entity.getJSONArray("properties");
    for (int p = 0; p < properties.length(); p++) {
      JSONObject property = properties.getJSONObject(p);
      EntityModel child;
      String alias;

      if (property.has("model")) {
        String model = property.getString("model");
        if (model.equals(viewModel.getRootModel().getName())) {
          child = viewModel.getRootModel();
          alias = viewModel.getRootAlias();
        } else {
          ViewEntityModel.EntityRelationship relationship =
              viewModel.getModel(property.getString("model"));
          child = relationship.getModel();
          alias = relationship.getAlias();
        }
      } else {
        child = viewModel;
        alias = viewModel.getRootAlias();
      }

      String propertyName = property.getString("name");
      if ("*".equals(propertyName)) {
        for (EntityProperty childProperty : child.getAllProperties(version.getVersion())) {
          String name = childProperty.getName();
          if (childProperty.getModel() instanceof ViewEntityModel
              && childProperty.getAlias() != null) name = childProperty.getAlias();
          EntityProperty cp =
              version.newProperty(
                  childProperty.getType(), name, childProperty.isNullable(), null, null);
          cp.setModelAlias(alias);
          cp.setOriginalModel(childProperty.getModel());
        }
      } else {
        EntityProperty childProperty = null;
        try {
          childProperty = child.getProperty(version.getVersion(), propertyName);
        } catch (IllegalArgumentException ignore) {
        }
        EntityProperty cp =
            version.newProperty(
                childProperty == null
                    ? EntityProperty.Type.valueOf(property.getString("type"))
                    : childProperty.getType(),
                property.getString("name"),
                !property.has("nullable") || property.getBoolean("nullable"),
                property.has("alias") ? property.getString("alias") : null,
                property.has("sql") ? property.getString("sql") : null);
        cp.setModelAlias(alias);
        if (childProperty != null) cp.setOriginalModel(childProperty.getModel());
      }
    }
  }