Пример #1
0
  /**
   * Returns a map key for a given to-many map relationship and a target object.
   *
   * @since 3.0
   */
  protected Object getMapKey(String relationshipName, Object value) {

    EntityResolver resolver = objectContext.getEntityResolver();
    ClassDescriptor descriptor = resolver.getClassDescriptor(objectId.getEntityName());

    if (descriptor == null) {
      throw new IllegalStateException("DataObject's entity is unmapped, objectId: " + objectId);
    }

    PropertyDescriptor property = descriptor.getProperty(relationshipName);
    if (property instanceof ToManyMapProperty) {
      return ((ToManyMapProperty) property).getMapKey(value);
    }

    throw new IllegalArgumentException(
        "Relationship '" + relationshipName + "' is not a to-many Map");
  }