class ForeCastMatcher extends GenericMatchEngine {
@Override
protected AbstractSimilarityChecker prepareChecker() {
return new AbstractSimilarityChecker(filter) {
@Override
public boolean isSimilar(EObject obj1, final EObject obj2)
throws FactoryException {
WorldcupforecastSwitch<Boolean> comparison = new WorldcupforecastSwitch<Boolean>() {
@Override
public Boolean caseForecast(Forecast object) {
return EcoreUtil.equals(object.getMatch(),
((Forecast) obj2).getMatch());
}
@Override
public Boolean caseForecastDay(ForecastDay object) {
return object.getDate().equals(((ForecastDay) obj2).getDate());
}
@Override
public Boolean casePlayer(Player object) {
return true;
}
};
return comparison.doSwitch(obj1);
}
@Override
public double absoluteMetric(EObject obj1, EObject obj2)
throws FactoryException {
if (isSimilar(obj1, obj2)) {
return 1.0;
}
return 0;
}
@Override
public void init(Resource leftResource, Resource rightResource)
throws FactoryException {
}
@Override
public void init(EObject leftObject, EObject rightObject)
throws FactoryException {
}
};
}