/* * Copyright (C) 2015 Arthur Gregorio, AG.Software * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package br.com.webbudget.domain.model.security; import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import org.picketlink.idm.model.AbstractAttributedType; import org.picketlink.idm.model.Account; import org.picketlink.idm.model.Relationship; import org.picketlink.idm.model.annotation.InheritsPrivileges; import org.picketlink.idm.model.annotation.RelationshipStereotype; import org.picketlink.idm.model.annotation.StereotypeProperty; import org.picketlink.idm.query.RelationshipQueryParameter; import static org.picketlink.idm.model.annotation.RelationshipStereotype.Stereotype.GROUP_MEMBERSHIP; import static org.picketlink.idm.model.annotation.StereotypeProperty.Property.RELATIONSHIP_GROUP_MEMBERSHIP_GROUP; import static org.picketlink.idm.model.annotation.StereotypeProperty.Property.RELATIONSHIP_GROUP_MEMBERSHIP_MEMBER; /** * * @author Arthur Gregorio * * @version 1.0.0 * @since 2.0.0, 26/05/2015 */ @RelationshipStereotype(GROUP_MEMBERSHIP) public class GroupMembership extends AbstractAttributedType implements Relationship { @Getter @Setter @NotNull(message = "{user.no-group}") @StereotypeProperty(RELATIONSHIP_GROUP_MEMBERSHIP_GROUP) private Group group; @Getter @Setter @InheritsPrivileges("group") @StereotypeProperty(RELATIONSHIP_GROUP_MEMBERSHIP_MEMBER) private Account member; public static final RelationshipQueryParameter GROUP = RELATIONSHIP_QUERY_ATTRIBUTE.byName("group"); public static final RelationshipQueryParameter MEMBER = RELATIONSHIP_QUERY_ATTRIBUTE.byName("member"); /** * */ public GroupMembership() { } /** * * @param member * @param group */ public GroupMembership(Group group, Account member) { this.group = group; this.member = member; } }