Class GroupProvider
- java.lang.Object
-
- cern.nxcals.api.extraction.metadata.AbstractProvider<Group,GroupClient,cern.nxcals.api.extraction.metadata.queries.Groups>
-
- cern.nxcals.api.extraction.metadata.GroupProvider
-
- All Implemented Interfaces:
AbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
,GroupService
,Queryable<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
,cern.nxcals.internal.extraction.metadata.InternalGroupService
public class GroupProvider extends AbstractProvider<Group,GroupClient,cern.nxcals.api.extraction.metadata.queries.Groups> implements cern.nxcals.internal.extraction.metadata.InternalGroupService
-
-
Constructor Summary
Constructors Constructor Description GroupProvider(GroupClient httpClient)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Attaches the givenMap
of entities to the given group, by adding the provided entities to the corresponding association.void
addVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Attaches the givenMap
of associations to the given group, by adding the provided variables to the corresponding association.Group
create(Group group)
Creates group as in the parameter NOTE: this is a mutative method.void
delete(long groupId)
Deletes an existing groupjava.util.Optional<Group>
findById(long id)
java.util.Map<java.lang.String,java.util.Set<Entity>>
getEntities(long groupId)
Returns the complete map of entities grouped by their association to a given groupjava.util.Map<java.lang.String,java.util.Set<Variable>>
getVariables(long groupId)
Returns the complete map of variables grouped by their association to a given groupvoid
removeEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Detaches the givenMap
of entities from the given group.void
removeVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Detaches the givenMap
of variables from the given group.void
setEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Attaches the givenMap
of entities to the given group, overwriting any existing associations.void
setVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Attaches the givenMap
of variables to the given group, overwriting any existing associations.Group
update(Group group)
Updates an existing group to the new values as in the parameter NOTE: this is a mutative method.-
Methods inherited from class cern.nxcals.api.extraction.metadata.AbstractProvider
findAll, findOne, getCache
-
-
-
-
Constructor Detail
-
GroupProvider
public GroupProvider(GroupClient httpClient)
-
-
Method Detail
-
findById
public java.util.Optional<Group> findById(long id)
-
create
public Group create(Group group)
Description copied from interface:AbstractGroupService
Creates group as in the parameter NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
create
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
group
- to be created- Returns:
- Created group
-
update
public Group update(Group group)
Description copied from interface:AbstractGroupService
Updates an existing group to the new values as in the parameter NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
update
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
group
- to be updated- Returns:
- Updated group or null if the group does not exist
-
delete
public void delete(long groupId)
Description copied from interface:AbstractGroupService
Deletes an existing group- Specified by:
delete
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- the id of the group to be deleted
-
getVariables
public java.util.Map<java.lang.String,java.util.Set<Variable>> getVariables(long groupId)
Description copied from interface:AbstractGroupService
Returns the complete map of variables grouped by their association to a given group- Specified by:
getVariables
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- of the group to query- Returns:
Map
of variables grouped by their association type to the group
-
setVariables
public void setVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Description copied from interface:AbstractGroupService
Attaches the givenMap
of variables to the given group, overwriting any existing associations. In case the association(s) do not exist, it creates and sets the variables as described by their ids. The group and the variables must exist. The map key should represent the association type of the enclosed variableSet
. NOTE: this action replaces any existing associations. The resulted associations would reflect the provided context. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
setVariables
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- group to attach variables tovariableIdsPerAssociation
-Map
of variable ids to attach, grouped by the association type
-
addVariables
public void addVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Description copied from interface:AbstractGroupService
Attaches the givenMap
of associations to the given group, by adding the provided variables to the corresponding association. In case the association(s) do not exist, it creates and adds the variables as described by their ids. The group and the variables to add must exist. The map key should represent the association type of the enclosed variableSet
. NOTE: this action only adds to any existing attachedSet
. Does not fail if variable already present. The resulted associations would reflect the merged product of the existing associations and the provided ones. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
addVariables
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- group to attach variables tovariableIdsPerAssociation
-Map
of variable ids to attach, grouped by the association type
-
removeVariables
public void removeVariables(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> variableIdsPerAssociation)
Description copied from interface:AbstractGroupService
Detaches the givenMap
of variables from the given group. The map key should represent the association type of the enclosed variableSet
. The group and the variables must exist. NOTE: it removes from any existing attachedSet
. Does not fail if variable already absent. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
removeVariables
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- group to attach variables tovariableIdsPerAssociation
-Map
of variable ids to detach, grouped by the association type
-
getEntities
public java.util.Map<java.lang.String,java.util.Set<Entity>> getEntities(long groupId)
Description copied from interface:AbstractGroupService
Returns the complete map of entities grouped by their association to a given group- Specified by:
getEntities
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- of the group to query- Returns:
Map
of entities grouped by their association type to the group
-
setEntities
public void setEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Description copied from interface:AbstractGroupService
Attaches the givenMap
of entities to the given group, overwriting any existing associations. In case the association(s) do not exist, it creates and sets the entities as described by their ids. The group and the entities must exist. The map key should represent the association type of the enclosed entitySet
. NOTE: this action replaces any existing associations. The resulted associations would reflect the provided context. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
setEntities
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- id of the group to attach entities toentityIdsPerAssociation
-Map
of entity ids to attach, grouped by the association type
-
addEntities
public void addEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Description copied from interface:AbstractGroupService
Attaches the givenMap
of entities to the given group, by adding the provided entities to the corresponding association. In case the association(s) do not exist, it creates and adds the entities as described by their ids. The group and the entities to add must exist. The map key should represent the association type of the enclosed entitySet
. NOTE: this action only adds to any existing attachedSet
. Does not fail if entity already present. The resulted associations would reflect the merged product of the existing associations and the provided ones. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
addEntities
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- group to attach entities toentityIdsPerAssociation
-Map
of entity ids to attach, grouped by the association type
-
removeEntities
public void removeEntities(long groupId, java.util.Map<java.lang.String,java.util.Set<java.lang.Long>> entityIdsPerAssociation)
Description copied from interface:AbstractGroupService
Detaches the givenMap
of entities from the given group. The map key should represent the association type of the enclosed entitySet
. The group and the entities must exist. NOTE: it removes from any existing attachedSet
. Does not fail if entity already absent. NOTE: this is a mutative method. It is not thread-safe or meant to be used in parallel- Specified by:
removeEntities
in interfaceAbstractGroupService<Group,cern.nxcals.api.extraction.metadata.queries.Groups>
- Parameters:
groupId
- group to attach entities toentityIdsPerAssociation
-Map
of entity ids to detach, grouped by the association type
-
-