test_class.declarator: service
test_class.original_string: DefaultCommunicationService service;
test_class.type: DefaultCommunicationService
test_class.var_name: service
test_class.file: communication/src/test/java/org/entcore/communication/services/impl/DefaultCommunicationServiceTest.java
test_class.identifier: DefaultCommunicationServiceTest
test_case.body: @Test
      public void computeWarningMessageForAddLinkCheck_shouldReturnNull_GivenSenderNoneAndReceiverNone() {
          Assert.assertEquals(null,
                  this.service.computeWarningMessageForAddLinkCheck(CommunicationService.Direction.NONE, CommunicationService.Direction.NONE));
      }
test_case.class_method_signature: DefaultCommunicationServiceTest.computeWarningMessageForAddLinkCheck_shouldReturnNull_GivenSenderNoneAndReceiverNone()
test_case.full_signature: @Test public void computeWarningMessageForAddLinkCheck_shouldReturnNull_GivenSenderNoneAndReceiverNone()
test_case.identifier: computeWarningMessageForAddLinkCheck_shouldReturnNull_GivenSenderNoneAndReceiverNone
test_case.invocations: assertEquals computeWarningMessageForAddLinkCheck
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void computeWarningMessageForAddLinkCheck_shouldReturnNull_GivenSenderNoneAndReceiverNone()
focal_class.declarator: neo4j = Neo4j.getInstance()
focal_class.modifier: protected final
focal_class.original_string: protected final Neo4j neo4j = Neo4j.getInstance();
focal_class.type: Neo4j
focal_class.var_name: neo4j
focal_class.declarator: log = LoggerFactory.getLogger(DefaultCommunicationService.class)
focal_class.modifier: protected static final
focal_class.original_string: protected static final Logger log = LoggerFactory.getLogger(DefaultCommunicationService.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: relationQuery = "OPTIONAL MATCH (sg:Structure)<-[:DEPENDS]-(g) "
  			+ "OPTIONAL MATCH (sc:Structure)<-[:BELONGS]-(c:Class)<-[:DEPENDS]-(g) "
  			+ "WITH COALESCE(sg, sc) as s, c, g "
  			+ "WITH s, c, g, "
  			+ "collect( distinct {name: c.name, id: c.id}) as classes, "
  			+ "collect( distinct {name: s.name, id: s.id}) as structures, "
  			+ "HEAD(filter(x IN labels(g) WHERE x <> 'Visible' AND x <> 'Group')) as type "
  			+ "RETURN DISTINCT "
  			+ "g.id as id, "
  			+ "g.name as name, "
  			+ "g.filter as filter, "
  			+ "g.displayName as displayName, "
  			+ "g.users as internalCommunicationRule, "
  			+ "type, "
  			+ "CASE WHEN any(x in classes where x <> {name: null, id: null}) THEN classes END as classes, "
  			+ "CASE WHEN any(x in structures where x <> {name: null, id: null}) THEN structures END as structures, "
  			+ "CASE WHEN (g: ProfileGroup)-[:DEPENDS]->(:Structure) THEN 'StructureGroup' WHEN (g: ProfileGroup)-[:DEPENDS]->(:Class) THEN 'ClassGroup' END as subType"
focal_class.modifier: private static
focal_class.original_string: private static String relationQuery = "OPTIONAL MATCH (sg:Structure)<-[:DEPENDS]-(g) "
  			+ "OPTIONAL MATCH (sc:Structure)<-[:BELONGS]-(c:Class)<-[:DEPENDS]-(g) "
  			+ "WITH COALESCE(sg, sc) as s, c, g "
  			+ "WITH s, c, g, "
  			+ "collect( distinct {name: c.name, id: c.id}) as classes, "
  			+ "collect( distinct {name: s.name, id: s.id}) as structures, "
  			+ "HEAD(filter(x IN labels(g) WHERE x <> 'Visible' AND x <> 'Group')) as type "
  			+ "RETURN DISTINCT "
  			+ "g.id as id, "
  			+ "g.name as name, "
  			+ "g.filter as filter, "
  			+ "g.displayName as displayName, "
  			+ "g.users as internalCommunicationRule, "
  			+ "type, "
  			+ "CASE WHEN any(x in classes where x <> {name: null, id: null}) THEN classes END as classes, "
  			+ "CASE WHEN any(x in structures where x <> {name: null, id: null}) THEN structures END as structures, "
  			+ "CASE WHEN (g: ProfileGroup)-[:DEPENDS]->(:Structure) THEN 'StructureGroup' WHEN (g: ProfileGroup)-[:DEPENDS]->(:Class) THEN 'ClassGroup' END as subType";
focal_class.type: String
focal_class.var_name: relationQuery
focal_class.file: communication/src/main/java/org/entcore/communication/services/impl/DefaultCommunicationService.java
focal_class.identifier: DefaultCommunicationService
focal_class.interfaces: implements CommunicationService
focal_class.class_method_signature: DefaultCommunicationService.addLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void addLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: addLink
focal_class.modifiers: @Override public
focal_class.parameters: (String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void addLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.removeLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void removeLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: removeLink
focal_class.modifiers: @Override public
focal_class.parameters: (String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void removeLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.addLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void addLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: addLinkWithUsers
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void addLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.addLinkWithUsers(Map<String, Direction> params, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void addLinkWithUsers(Map<String, Direction> params, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: addLinkWithUsers
focal_class.modifiers: @Override public
focal_class.parameters: (Map<String, Direction> params, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void addLinkWithUsers(Map<String, Direction> params, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.removeLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void removeLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: removeLinkWithUsers
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void removeLinkWithUsers(String groupId, Direction direction, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.communiqueWith(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void communiqueWith(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: communiqueWith
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void communiqueWith(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.addLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void addLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.identifier: addLinkBetweenRelativeAndStudent
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void addLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.removeLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void removeLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.identifier: removeLinkBetweenRelativeAndStudent
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void removeLinkBetweenRelativeAndStudent(String groupId, Direction direction,
  			Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.initDefaultRules(JsonArray structureIds, JsonObject defaultRules,
  			final Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void initDefaultRules(JsonArray structureIds, JsonObject defaultRules,
  			final Handler<Either<String, JsonObject>> handler)
focal_class.identifier: initDefaultRules
focal_class.modifiers: @Override public
focal_class.parameters: (JsonArray structureIds, JsonObject defaultRules,
  			final Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void initDefaultRules(JsonArray structureIds, JsonObject defaultRules,
  			final Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.initDefaultRules(JsonArray structureIds, String attr, JsonObject defaultRules,
  			final StatementsBuilder existingGroups, final StatementsBuilder newGroups)
focal_class.full_signature: private void initDefaultRules(JsonArray structureIds, String attr, JsonObject defaultRules,
  			final StatementsBuilder existingGroups, final StatementsBuilder newGroups)
focal_class.identifier: initDefaultRules
focal_class.modifiers: private
focal_class.parameters: (JsonArray structureIds, String attr, JsonObject defaultRules,
  			final StatementsBuilder existingGroups, final StatementsBuilder newGroups)
focal_class.return: void
focal_class.signature: void initDefaultRules(JsonArray structureIds, String attr, JsonObject defaultRules,
  			final StatementsBuilder existingGroups, final StatementsBuilder newGroups)
focal_class.class_method_signature: DefaultCommunicationService.applyDefaultRules(JsonArray structureIds, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void applyDefaultRules(JsonArray structureIds, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: applyDefaultRules
focal_class.modifiers: @Override public
focal_class.parameters: (JsonArray structureIds, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void applyDefaultRules(JsonArray structureIds, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.applyRules(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void applyRules(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: applyRules
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void applyRules(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.removeRules(String structureId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void removeRules(String structureId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: removeRules
focal_class.modifiers: @Override public
focal_class.parameters: (String structureId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void removeRules(String structureId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  							 boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams,
  							 final Handler<Either<String, JsonArray>> handler)
focal_class.full_signature: @Override public void visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  							 boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams,
  							 final Handler<Either<String, JsonArray>> handler)
focal_class.identifier: visibleUsers
focal_class.modifiers: @Override public
focal_class.parameters: (String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  							 boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams,
  							 final Handler<Either<String, JsonArray>> handler)
focal_class.return: void
focal_class.signature: void visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  							 boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams,
  							 final Handler<Either<String, JsonArray>> handler)
focal_class.class_method_signature: DefaultCommunicationService.visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  			boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams, String userProfile,
  			final Handler<Either<String, JsonArray>> handler)
focal_class.full_signature: @Override public void visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  			boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams, String userProfile,
  			final Handler<Either<String, JsonArray>> handler)
focal_class.identifier: visibleUsers
focal_class.modifiers: @Override public
focal_class.parameters: (String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  			boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams, String userProfile,
  			final Handler<Either<String, JsonArray>> handler)
focal_class.return: void
focal_class.signature: void visibleUsers(String userId, String structureId, JsonArray expectedTypes, boolean itSelf,
  			boolean myGroup, boolean profile, String preFilter, String customReturn, JsonObject additionnalParams, String userProfile,
  			final Handler<Either<String, JsonArray>> handler)
focal_class.class_method_signature: DefaultCommunicationService.usersCanSeeMe(String userId, Handler<Either<String, JsonArray>> handler)
focal_class.full_signature: @Override public void usersCanSeeMe(String userId, Handler<Either<String, JsonArray>> handler)
focal_class.identifier: usersCanSeeMe
focal_class.modifiers: @Override public
focal_class.parameters: (String userId, Handler<Either<String, JsonArray>> handler)
focal_class.return: void
focal_class.signature: void usersCanSeeMe(String userId, Handler<Either<String, JsonArray>> handler)
focal_class.class_method_signature: DefaultCommunicationService.visibleProfilsGroups(String userId, String customReturn, JsonObject additionnalParams,
  			String preFilter, Handler<Either<String, JsonArray>> handler)
focal_class.full_signature: @Override public void visibleProfilsGroups(String userId, String customReturn, JsonObject additionnalParams,
  			String preFilter, Handler<Either<String, JsonArray>> handler)
focal_class.identifier: visibleProfilsGroups
focal_class.modifiers: @Override public
focal_class.parameters: (String userId, String customReturn, JsonObject additionnalParams,
  			String preFilter, Handler<Either<String, JsonArray>> handler)
focal_class.return: void
focal_class.signature: void visibleProfilsGroups(String userId, String customReturn, JsonObject additionnalParams,
  			String preFilter, Handler<Either<String, JsonArray>> handler)
focal_class.class_method_signature: DefaultCommunicationService.visibleManualGroups(String userId, String customReturn, JsonObject additionnalParams,
  			Handler<Either<String, JsonArray>> handler)
focal_class.full_signature: @Override public void visibleManualGroups(String userId, String customReturn, JsonObject additionnalParams,
  			Handler<Either<String, JsonArray>> handler)
focal_class.identifier: visibleManualGroups
focal_class.modifiers: @Override public
focal_class.parameters: (String userId, String customReturn, JsonObject additionnalParams,
  			Handler<Either<String, JsonArray>> handler)
focal_class.return: void
focal_class.signature: void visibleManualGroups(String userId, String customReturn, JsonObject additionnalParams,
  			Handler<Either<String, JsonArray>> handler)
focal_class.class_method_signature: DefaultCommunicationService.getOutgoingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.full_signature: @Override public void getOutgoingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.identifier: getOutgoingRelations
focal_class.modifiers: @Override public
focal_class.parameters: (String id, Handler<Either<String, JsonArray>> results)
focal_class.return: void
focal_class.signature: void getOutgoingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.class_method_signature: DefaultCommunicationService.getIncomingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.full_signature: @Override public void getIncomingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.identifier: getIncomingRelations
focal_class.modifiers: @Override public
focal_class.parameters: (String id, Handler<Either<String, JsonArray>> results)
focal_class.return: void
focal_class.signature: void getIncomingRelations(String id, Handler<Either<String, JsonArray>> results)
focal_class.class_method_signature: DefaultCommunicationService.safelyRemoveLinkWithUsers(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void safelyRemoveLinkWithUsers(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: safelyRemoveLinkWithUsers
focal_class.modifiers: @Override public
focal_class.parameters: (String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void safelyRemoveLinkWithUsers(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.getDirections(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void getDirections(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: getDirections
focal_class.modifiers: @Override public
focal_class.parameters: (String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void getDirections(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.addLinkCheckOnly(String startGroupId, String endGroupId, UserInfos userInfos, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void addLinkCheckOnly(String startGroupId, String endGroupId, UserInfos userInfos, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: addLinkCheckOnly
focal_class.modifiers: @Override public
focal_class.parameters: (String startGroupId, String endGroupId, UserInfos userInfos, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void addLinkCheckOnly(String startGroupId, String endGroupId, UserInfos userInfos, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.getRelationsOfGroup(String groupId)
focal_class.full_signature: private CompletableFuture<JsonObject> getRelationsOfGroup(String groupId)
focal_class.identifier: getRelationsOfGroup
focal_class.modifiers: private
focal_class.parameters: (String groupId)
focal_class.return: CompletableFuture<JsonObject>
focal_class.signature: CompletableFuture<JsonObject> getRelationsOfGroup(String groupId)
focal_class.class_method_signature: DefaultCommunicationService.removeRelations(String sendingGroupId, String receivingGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void removeRelations(String sendingGroupId, String receivingGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: removeRelations
focal_class.modifiers: @Override public
focal_class.parameters: (String sendingGroupId, String receivingGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void removeRelations(String sendingGroupId, String receivingGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.processChangeDirectionAfterAddingLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: @Override public void processChangeDirectionAfterAddingLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: processChangeDirectionAfterAddingLink
focal_class.modifiers: @Override public
focal_class.parameters: (String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void processChangeDirectionAfterAddingLink(String startGroupId, String endGroupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.computeDirectionToRemove(boolean hasIncomingRelationship, boolean hasOutgoingRelationship)
focal_class.full_signature: public Direction computeDirectionToRemove(boolean hasIncomingRelationship, boolean hasOutgoingRelationship)
focal_class.identifier: computeDirectionToRemove
focal_class.modifiers: public
focal_class.parameters: (boolean hasIncomingRelationship, boolean hasOutgoingRelationship)
focal_class.return: Direction
focal_class.signature: Direction computeDirectionToRemove(boolean hasIncomingRelationship, boolean hasOutgoingRelationship)
focal_class.class_method_signature: DefaultCommunicationService.computeNextDirection(Direction directionToRemove)
focal_class.full_signature: public Direction computeNextDirection(Direction directionToRemove)
focal_class.identifier: computeNextDirection
focal_class.modifiers: public
focal_class.parameters: (Direction directionToRemove)
focal_class.return: Direction
focal_class.signature: Direction computeNextDirection(Direction directionToRemove)
focal_class.class_method_signature: DefaultCommunicationService.formatDirection(String dbDirection)
focal_class.full_signature: private CommunicationService.Direction formatDirection(String dbDirection)
focal_class.identifier: formatDirection
focal_class.modifiers: private
focal_class.parameters: (String dbDirection)
focal_class.return: CommunicationService.Direction
focal_class.signature: CommunicationService.Direction formatDirection(String dbDirection)
focal_class.class_method_signature: DefaultCommunicationService.computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)
focal_class.full_signature: public String computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)
focal_class.identifier: computeWarningMessageForAddLinkCheck
focal_class.modifiers: public
focal_class.parameters: (Direction startDirection, Direction endDirection)
focal_class.return: String
focal_class.signature: String computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)
focal_class.class_method_signature: DefaultCommunicationService.getGroupFilterAndSubType(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.full_signature: private void getGroupFilterAndSubType(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.identifier: getGroupFilterAndSubType
focal_class.modifiers: private
focal_class.parameters: (String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.return: void
focal_class.signature: void getGroupFilterAndSubType(String groupId, Handler<Either<String, JsonObject>> handler)
focal_class.class_method_signature: DefaultCommunicationService.isImpossibleToChangeDirectionGroupForAddLink(String filter, String subType, UserInfos userInfos)
focal_class.full_signature: public boolean isImpossibleToChangeDirectionGroupForAddLink(String filter, String subType, UserInfos userInfos)
focal_class.identifier: isImpossibleToChangeDirectionGroupForAddLink
focal_class.modifiers: public
focal_class.parameters: (String filter, String subType, UserInfos userInfos)
focal_class.return: boolean
focal_class.signature: boolean isImpossibleToChangeDirectionGroupForAddLink(String filter, String subType, UserInfos userInfos)
focal_class.class_method_signature: DefaultCommunicationService.computeNewDirectionAfterAddingLink(String startGroupId, Direction startDirection, String endGroupId, Direction endDirection)
focal_class.full_signature: public Map<String, Direction> computeNewDirectionAfterAddingLink(String startGroupId, Direction startDirection, String endGroupId, Direction endDirection)
focal_class.identifier: computeNewDirectionAfterAddingLink
focal_class.modifiers: public
focal_class.parameters: (String startGroupId, Direction startDirection, String endGroupId, Direction endDirection)
focal_class.return: Map<String, Direction>
focal_class.signature: Map<String, Direction> computeNewDirectionAfterAddingLink(String startGroupId, Direction startDirection, String endGroupId, Direction endDirection)
focal_method.body: public String computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection) {
  		if (startDirection.equals(Direction.OUTGOING) && endDirection.equals(Direction.INCOMING)) {
  			return CommunicationService.WARNING_BOTH_GROUPS_USERS_CAN_COMMUNICATE;
  		}
  
  		if (startDirection.equals(Direction.OUTGOING)) {
  			return CommunicationService.WARNING_STARTGROUP_USERS_CAN_COMMUNICATE;
  		}
  
  		if (endDirection.equals(Direction.INCOMING)) {
  			return CommunicationService.WARNING_ENDGROUP_USERS_CAN_COMMUNICATE;
  		}
  
  		return null;
  	}
focal_method.class_method_signature: DefaultCommunicationService.computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)
focal_method.full_signature: public String computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)
focal_method.identifier: computeWarningMessageForAddLinkCheck
focal_method.invocations: equals equals equals equals
focal_method.modifiers: public
focal_method.parameters: (Direction startDirection, Direction endDirection)
focal_method.return: String
focal_method.signature: String computeWarningMessageForAddLinkCheck(Direction startDirection, Direction endDirection)