| | |
| | | |
| | | import org.forgerock.json.fluent.JsonPointer; |
| | | import org.forgerock.json.fluent.JsonValue; |
| | | import org.forgerock.json.resource.PatchOperation; |
| | | import org.forgerock.json.resource.ResultHandler; |
| | | import org.forgerock.opendj.ldap.Attribute; |
| | | import org.forgerock.opendj.ldap.Entry; |
| | | import org.forgerock.opendj.ldap.Filter; |
| | | import org.forgerock.opendj.ldap.Modification; |
| | |
| | | } |
| | | |
| | | /** |
| | | * Maps a JSON value to one or more LDAP attributes, invoking a completion |
| | | * handler once the transformation has completed. This method is invoked |
| | | * when a REST resource is created using a create request. |
| | | * <p> |
| | | * If the JSON value corresponding to this mapper is not present in the |
| | | * resource then this method will be invoked with a value of {@code null}. |
| | | * It is the responsibility of the mapper implementation to take appropriate |
| | | * action in this case, perhaps by substituting default LDAP values, or by |
| | | * rejecting the update by invoking the result handler's |
| | | * {@link ResultHandler#handleError handleError} method. |
| | | * |
| | | * @param c |
| | | * The context. |
| | | * @param path |
| | | * The pointer from the root of the JSON resource to this |
| | | * attribute mapper. This may be used when constructing error |
| | | * messages. |
| | | * @param v |
| | | * The JSON value to be converted to LDAP attributes, which may |
| | | * be {@code null} indicating that the JSON value was not present |
| | | * in the resource. |
| | | * @param h |
| | | * The result handler. |
| | | */ |
| | | abstract void create(Context c, JsonPointer path, JsonValue v, ResultHandler<List<Attribute>> h); |
| | | |
| | | /** |
| | | * Adds the names of the LDAP attributes required by this attribute mapper |
| | | * to the provided set. |
| | | * <p> |
| | |
| | | * |
| | | * @param c |
| | | * The context. |
| | | * @param jsonAttribute |
| | | * The name of the requested sub-attribute within this mapper or |
| | | * @param path |
| | | * The pointer from the root of the JSON resource to this |
| | | * attribute mapper. This may be used when constructing error |
| | | * messages. |
| | | * @param subPath |
| | | * The targeted JSON field relative to this attribute mapper, or |
| | | * root if all attributes associated with this mapper have been |
| | | * requested. |
| | | * targeted. |
| | | * @param ldapAttributes |
| | | * The set into which the required LDAP attribute names should be |
| | | * put. |
| | |
| | | * |
| | | * @param c |
| | | * The context. |
| | | * @param path |
| | | * The pointer from the root of the JSON resource to this |
| | | * attribute mapper. This may be used when constructing error |
| | | * messages. |
| | | * @param subPath |
| | | * The targeted JSON field relative to this attribute mapper, or |
| | | * root if all attributes associated with this mapper have been |
| | | * targeted. |
| | | * @param type |
| | | * The type of REST comparison filter. |
| | | * @param jsonAttribute |
| | | * The name of the targeted sub-attribute within this mapper or |
| | | * root if all attributes associated with this mapper have been |
| | | * targeted by the filter. |
| | | * @param operator |
| | | * The name of the extended operator to use for the comparison, |
| | | * or {@code null} if {@code type} is not |
| | |
| | | String operator, Object valueAssertion, ResultHandler<Filter> h); |
| | | |
| | | /** |
| | | * Maps a JSON patch operation to one or more LDAP modifications, invoking a |
| | | * completion handler once the transformation has completed. This method is |
| | | * invoked when a REST resource is modified using a patch request. |
| | | * |
| | | * @param c |
| | | * The context. |
| | | * @param path |
| | | * The pointer from the root of the JSON resource to this |
| | | * attribute mapper. This may be used when constructing error |
| | | * messages. |
| | | * @param operation |
| | | * The JSON patch operation to be converted to LDAP |
| | | * modifications. The targeted JSON field will be relative to |
| | | * this attribute mapper, or root if all attributes associated |
| | | * with this mapper have been targeted. |
| | | * @param h |
| | | * The result handler. |
| | | */ |
| | | abstract void patch(Context c, JsonPointer path, PatchOperation operation, |
| | | ResultHandler<List<Modification>> h); |
| | | |
| | | /** |
| | | * Maps one or more LDAP attributes to their JSON representation, invoking a |
| | | * completion handler once the transformation has completed. |
| | | * <p> |
| | |
| | | * |
| | | * @param c |
| | | * The context. |
| | | * @param path |
| | | * The pointer from the root of the JSON resource to this |
| | | * attribute mapper. This may be used when constructing error |
| | | * messages. |
| | | * @param e |
| | | * The LDAP entry to be converted to JSON. |
| | | * @param h |
| | | * The result handler. |
| | | */ |
| | | abstract void toJSON(Context c, JsonPointer path, Entry e, ResultHandler<JsonValue> h); |
| | | abstract void read(Context c, JsonPointer path, Entry e, ResultHandler<JsonValue> h); |
| | | |
| | | /** |
| | | * Maps a JSON value to one or more LDAP attributes, invoking a completion |
| | | * handler once the transformation has completed. |
| | | * <p> |
| | | * This method is invoked whenever a REST resource is converted to an LDAP |
| | | * entry or LDAP modification, i.e. when performing create, put, or patch |
| | | * requests. |
| | | * Maps a JSON value to one or more LDAP modifications, invoking a |
| | | * completion handler once the transformation has completed. This method is |
| | | * invoked when a REST resource is modified using an update request. |
| | | * <p> |
| | | * If the JSON value corresponding to this mapper is not present in the |
| | | * resource then this method will be invoked with a value of {@code null}. |
| | |
| | | * @param h |
| | | * The result handler. |
| | | */ |
| | | abstract void toLDAP(Context c, JsonPointer path, Entry e, JsonValue v, |
| | | abstract void update(Context c, JsonPointer path, Entry e, JsonValue v, |
| | | ResultHandler<List<Modification>> h); |
| | | |
| | | // TODO: methods for obtaining schema information (e.g. name, description, |