Package moise.os.ss

Class Role

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable, Identifiable, ToXML

    public class Role
    extends MoiseElement
    implements ToXML
    Represents a Role Definition (its name and inheritance).
    Author:
    Jomi Fred Hubner
    See Also:
    Serialized Form
    • Field Detail

      • superRoles

        protected java.util.Set<Role> superRoles
      • isAbstract

        protected boolean isAbstract
      • ss

        protected SS ss
    • Constructor Detail

      • Role

        public Role​(java.lang.String id,
                    SS ss)
        Creates a new Role
        Parameters:
        ss - the SS this role will belongs to
        id - the identification of the role
    • Method Detail

      • setSS

        public void setSS​(SS ss)
      • getSuperRoles

        public java.util.Collection<Role> getSuperRoles()
        gets the super roles of this role
      • containsSuperRole

        public boolean containsSuperRole​(Role r)
        returns true if some of the direct super roles is equal r
      • getAllSuperRoles

        public java.util.Map<java.lang.String,​Role> getAllSuperRoles()
        gets the super roles of this role (including the super roles of the super roles...., but excluding this role). The returned map keys are the roles' id (String) and the value is the role (object of the class Role)
      • getEntailedRoles

        public java.util.Map<java.lang.String,​Role> getEntailedRoles()
        gets the super roles of this role (including this role, the super roles of the super roles....) The returned map keys are the roles' id (String) and the value is the role
      • getSubRoles

        public java.util.Collection<Role> getSubRoles()
        gets the direct specialisations (sub-roles) of this role. It does not return the sub-sub-roles.
      • getGroups

        public java.util.Collection<Group> getGroups()
        gets a list of groups where this role can be played
      • getCompatibilities

        public java.util.Collection<Compatibility> getCompatibilities​(Group gr)
        gets all compatibilities for this role (and its super roles) in the context of the GrSpec
      • getLinks

        public java.util.Collection<Link> getLinks​(Group gr)
        gets all links for this role (and its super roles) in the context of the GrSpec
      • getDeonticRelations

        public java.util.Collection<Norm> getDeonticRelations()
        gets all deontic relations (obligations, permissions, ...) for this role (and its super roles)
      • getNorms

        public java.util.Collection<Norm> getNorms​(NS.OpTypes type,
                                                   java.lang.String mission)
        gets norms for this role (and its super roles). if type != null, the norm type must be equals to type (all obligation is a permission). if mission != null, the norm mission must be equals to mission
      • hasNorm

        public boolean hasNorm​(NS.OpTypes type,
                               java.lang.String mission)
        returns true if this role has a norm towards the mission. if type != null, the norm type must be equals to type (all obligation is a permission). if mission != null, the norm mission must be equals to mission
      • getProperty

        public java.lang.Object getProperty​(java.lang.String id)
        gets properties of this role (it also looks at super roles properties not "over written"
        Overrides:
        getProperty in class MoiseElement
      • setAbstract

        protected void setAbstract​(boolean a)
      • isAbstract

        public boolean isAbstract()
      • getXMLTag

        public static java.lang.String getXMLTag()
      • getAsDOM

        public org.w3c.dom.Element getAsDOM​(org.w3c.dom.Document document)
        Specified by:
        getAsDOM in interface ToXML
      • getAsDetailedDom

        public org.w3c.dom.Element getAsDetailedDom​(org.w3c.dom.Document document)
      • generateFullSuperRolesBranch

        private void generateFullSuperRolesBranch​(org.w3c.dom.Element ele,
                                                  java.util.Collection<Role> roles,
                                                  org.w3c.dom.Document document)