You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bd...@apache.org on 2022/08/23 18:44:22 UTC
[directory-scimple] 01/01: Adds ScimAttribute annotation to the fields in the Meta class
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-meta-annotations
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit 7f0604819032638aff1f4e087b8c72fce8304cde
Author: Brian Demers <bd...@apache.org>
AuthorDate: Tue Aug 23 12:33:32 2022 -0400
Adds ScimAttribute annotation to the fields in the Meta class
Descriptions taken from the SCIM spec
The ScimResource constructor will attempt to set meta.resourceType when possible
---
.../java/org/apache/directory/scim/spec/resources/ScimResource.java | 6 ++++++
.../src/main/java/org/apache/directory/scim/spec/schema/Meta.java | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
index a9badf1..596a244 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
@@ -26,6 +26,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.directory.scim.spec.annotation.ScimAttribute;
import org.apache.directory.scim.spec.annotation.ScimExtensionType;
+import org.apache.directory.scim.spec.annotation.ScimResourceType;
import org.apache.directory.scim.spec.exception.InvalidExtensionException;
import org.apache.directory.scim.spec.extension.ScimExtensionRegistry;
import org.apache.directory.scim.spec.json.ObjectMapperFactory;
@@ -83,6 +84,11 @@ public abstract class ScimResource extends BaseResource implements Serializable
public ScimResource(String urn) {
super(urn);
this.baseUrn = urn;
+
+ ScimResourceType resourceTypeAnnotation = getClass().getAnnotation(ScimResourceType.class);
+ if (resourceTypeAnnotation != null) {
+ this.meta = new Meta().setResourceType(resourceTypeAnnotation.id());
+ }
}
/**
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
index fe634f7..ed68808 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
@@ -31,6 +31,7 @@ import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.directory.scim.spec.adapter.LocalDateTimeAdapter;
import lombok.Data;
+import org.apache.directory.scim.spec.annotation.ScimAttribute;
/**
* Defines the structure of the meta attribute for all SCIM resources as defined
@@ -49,20 +50,25 @@ public class Meta implements Serializable {
@XmlElement
@Size(min = 1)
+ @ScimAttribute(description = "The name of the resource type of the resource.")
String resourceType;
@XmlElement
@XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
+ @ScimAttribute(description = "The DateTime that the resource was added to the service provider.")
LocalDateTime created;
@XmlElement
@XmlJavaTypeAdapter(LocalDateTimeAdapter.class)
+ @ScimAttribute(description = "The most recent DateTime that the details of this resource were updated at the service provider.")
LocalDateTime lastModified;
@XmlElement
+ @ScimAttribute(description = "The URI of the resource being returned.")
String location;
@XmlElement
+ @ScimAttribute(description = "The version of the resource being returned. This value must be the same as the entity-tag (ETag) HTTP response header")
String version;
}