code: public void addNcsEquivalent(StructureInterface interfaceNew, StructureInterface interfaceRef) {
  
  		this.add(interfaceNew);
  		if (clustersNcs == null) {
  			clustersNcs = new ArrayList<>();
  		}
  
  		if (interfaceRef == null) {
  			StructureInterfaceCluster newCluster = new StructureInterfaceCluster();
  			newCluster.addMember(interfaceNew);
  			clustersNcs.add(newCluster);
  			return;
  		}
  
  		Optional<StructureInterfaceCluster> clusterRef =
  				clustersNcs.stream().
  					filter(r->r.getMembers().stream().
  						anyMatch(c -> c.equals(interfaceRef))).
  						findFirst();
  
  		if (clusterRef.isPresent()) {
  			clusterRef.get().addMember(interfaceNew);
  			return;
  		}
  
  		logger.warn("The specified reference interface, if not null, should have been added to this set previously. " +
  				"Creating new cluster and adding both interfaces. This is likely a bug.");
  		this.add(interfaceRef);
  		StructureInterfaceCluster newCluster = new StructureInterfaceCluster();
  		newCluster.addMember(interfaceRef);
  		newCluster.addMember(interfaceNew);
  		clustersNcs.add(newCluster);
  	}
docs: Add an interface to the list, possibly defining it as NCS-equivalent to an interface already in the list.
  Used to build up the NCS clustering.
  @param interfaceNew
  an interface to be added to the list.
  @param interfaceRef
  interfaceNew will be added to the cluster which contains interfaceRef.
  If interfaceRef is null, new cluster will be created for interfaceNew.
  @since 5.0.0