// Path: src/main/java/io/aif/language/word/IWord.java
// public interface IWord {
// 
//   public String getRootToken();
// 
//   public Set<String> getAllTokens();
// 
//   public Long getCount();
// 
//   public int getTokenCount(String token);
// 
//   public static interface IWordPlaceholder {
// 
//     public IWord getWord();
// 
//     public String getToken();
// 
//   }
// 
// }


import java.util.Set;
import io.aif.language.word.IWord;
package io.aif.language.semantic.weights.edge.word;



class CompositeEdgeWeightCalculator implements IWordEdgeWeightCalculator {

  private final Set<IWordEdgeWeightCalculator> calculators;

  public CompositeEdgeWeightCalculator(final Set<IWordEdgeWeightCalculator> calculators) {
    this.calculators = calculators;
  }

  @Override
// Path: src/main/java/io/aif/language/word/IWord.java
// public interface IWord {
// 
//   public String getRootToken();
// 
//   public Set<String> getAllTokens();
// 
//   public Long getCount();
// 
//   public int getTokenCount(String token);
// 
//   public static interface IWordPlaceholder {
// 
//     public IWord getWord();
// 
//     public String getToken();
// 
//   }
// 
// }


// Path: src/main/java/io/aif/language/semantic/weights/edge/word/CompositeEdgeWeightCalculator.java
import java.util.Set;
import io.aif.language.word.IWord;

package io.aif.language.semantic.weights.edge.word;



class CompositeEdgeWeightCalculator implements IWordEdgeWeightCalculator {

  private final Set<IWordEdgeWeightCalculator> calculators;

  public CompositeEdgeWeightCalculator(final Set<IWordEdgeWeightCalculator> calculators) {
    this.calculators = calculators;
  }

  @Override
  public double calculateWeight(final IWord from, final IWord to) {