blob: 8319564ad5b01dd1e3777d9ea7c13f15334de308 [file] [log] [blame]
package edu.psu.swe.scim.server.utility;
import java.io.Serializable;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import lombok.Data;
import edu.psu.swe.scim.spec.annotation.ScimAttribute;
import edu.psu.swe.scim.spec.annotation.ScimExtensionType;
import edu.psu.swe.scim.spec.resources.ScimExtension;
import edu.psu.swe.scim.spec.schema.Schema.Attribute.Mutability;
import edu.psu.swe.scim.spec.schema.Schema.Attribute.Returned;
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
@ScimExtensionType(required = false, name = "ExampleObject", id = ExampleObjectExtension.URN, description = "Example Object Extensions.")
@Data
public class ExampleObjectExtension implements ScimExtension {
private static final long serialVersionUID = -5398090056271556423L;
public static final String URN = "urn:ietf:params:scim:schemas:extension:example:2.0:Object";
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
@Data
public static class ComplexObject implements Serializable {
private static final long serialVersionUID = 2822581434679824690L;
@ScimAttribute(description = "The \"id\" of the complex object.")
@XmlElement
private String value;
@ScimAttribute(mutability = Mutability.READ_ONLY, description = "displayName of the object.")
@XmlElement
private String displayName;
}
@ScimAttribute(returned = Returned.ALWAYS)
@XmlElement
private String valueAlways;
@ScimAttribute(returned = Returned.DEFAULT)
@XmlElement
private String valueDefault;
@ScimAttribute(returned = Returned.NEVER)
@XmlElement
private String valueNever;
@ScimAttribute(returned = Returned.REQUEST)
@XmlElement
private String valueRequest;
@ScimAttribute(returned = Returned.REQUEST)
@XmlElement
private ComplexObject valueComplex;
@ScimAttribute
@XmlElement
private List<String> list;
@ScimAttribute
@XmlElement
private Subobject subobject;
@Override
public String getUrn() {
return URN;
}
}