public void endpointChanged()

in discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java [93:121]


    public void endpointChanged(EndpointDescription ed) {
    	List<String> scopes = this.scopes.get();
    	Optional<String> currentScope = getFirstMatch(ed, scopes);
    	boolean alreadyAdded =  added.containsKey(ed.getId());
    	EndpointEvent event;
    	String filter;
        if (currentScope.isPresent()) {
        	if(LOG.isDebugEnabled()) {
        		LOG.debug("Listener {} is interested in endpoint {}. It will be {}", id, ed, alreadyAdded ? "MODIFIED" : "ADDED");
        	}
        	added.put(ed.getId(), ed);
			event = new EndpointEvent(alreadyAdded ? MODIFIED : ADDED, ed);
			filter = currentScope.get();
        } else if(alreadyAdded) {
        	if(LOG.isDebugEnabled()) {
        		LOG.debug("Listener {} is no longer interested in endpoint {}. It will be {}", id, ed, alreadyAdded ? "MODIFIED" : "ADDED");
        	}
        	EndpointDescription previous = added.remove(ed.getId());
        	event = new EndpointEvent(MODIFIED_ENDMATCH, ed);
        	filter = getFirstMatch(previous, scopes).orElse(null);
        } else {
        	if(LOG.isDebugEnabled()) {
        		LOG.debug("Listener {} not interested in endpoint {}", id, ed);
        	}
        	return;
        }
        
    	notifyListener(event, filter);
    }