# Deprecated API

## Contents

- Deprecated Classes
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors

- Deprecated Classes
  Class and Description
  org.eclipse.viatra.query.runtime.localsearch.planner.cost.impl.HybridMatcherConstraintCostFunction `StatisticsBasedConstraintCostFunction` should use `IQueryResultProvider.estimateCardinality(org.eclipse.viatra.query.runtime.matchers.tuple.TupleMask, org.eclipse.viatra.query.runtime.matchers.util.Accuracy)`
  org.eclipse.viatra.query.patternlanguage.emf.util.PatternParser.Builder use `PatternParserBuilder`
  org.eclipse.viatra.query.patternlanguage.emf.util.PatternParsingUtil use the new `PatternParserBuilder` infrastructure instead

- Deprecated Fields
  Field and Description
  org.eclipse.viatra.query.runtime.rete.util.ReteHintOptions.deleteRederiveEvaluation Use `DRedReteBackendFactory` instead of setting this option to true.

- Deprecated Methods
  Method and Description
  org.eclipse.viatra.query.runtime.localsearch.planner.cost.impl.StatisticsBasedConstraintCostFunction.calculateBinaryExtendCost(IInputKey, PVariable, PVariable, boolean, long, IConstraintEvaluationContext) use/implement `StatisticsBasedConstraintCostFunction.calculateBinaryCost(IInputKey, PVariable, PVariable, boolean, IConstraintEvaluationContext)` instead
  org.eclipse.viatra.query.patternlanguage.emf.util.AdvancedPatternParser.calculateImpact(Set<URI>, ResourceSet) use `AdvancedPatternParser.calculateImpact(Set)` instead, the resource set parameter is unnecessary
  org.eclipse.viatra.query.runtime.localsearch.planner.cost.impl.StatisticsBasedConstraintCostFunction.countTuples(IConstraintEvaluationContext, IInputKey) call and implement `StatisticsBasedConstraintCostFunction.projectionSize(IConstraintEvaluationContext, IInputKey, TupleMask, Accuracy)` instead
  org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRuleFactory.createRule() Use `BatchTransformationRuleFactory.createRule(IQuerySpecification)` instead
  org.eclipse.viatra.transformation.runtime.emf.rules.eventdriven.EventDrivenTransformationRuleFactory.createRule() Use `EventDrivenTransformationRuleFactory.createRule(IQuerySpecification)` instead
  org.eclipse.viatra.query.runtime.base.itc.graphimpl.Graph.deleteEdge(V, V) use explicitly `Graph.deleteEdgeThatExists(Object, Object)` or `Graph.deleteEdgeIfExists(Object, Object)` instead. To preserve backwards compatibility, this method delegates to the latter.
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.disposeRule(RuleSpecification<Match>) This method was added to the API as an error, should not be available for transformation developers.
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.disposeRule(RuleSpecification<Match>, EventFilter<? super Match>) This method was added to the API as an error, should not be available for transformation developers.
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.disposeRules(BatchTransformationRuleGroup) This method was added to the API as an error, should not be available for transformation developers.
  org.eclipse.viatra.query.runtime.rete.recipes.impl.RecipesFactoryImpl.getPackage()
  org.eclipse.viatra.query.patternlanguage.emf.vql.impl.PatternLanguageFactoryImpl.getPackage()
  org.eclipse.viatra.query.patternlanguage.emf.util.PatternParser.parser() use `PatternParserBuilder`
  org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRuleFactory.BatchTransformationRuleBuilder.precondition(IQuerySpecification<Matcher>) Use `#BatchTransformationRuleFactory(IQuerySpecification)` instead
  org.eclipse.viatra.transformation.runtime.emf.rules.eventdriven.EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder.precondition(IQuerySpecification<Matcher>) Use `#EventDrivenTransformationRuleFactory(IQuerySpecification)` constructor instead
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.registerRule(RuleSpecification<Match>) Added to the API as an error, should have been internal helper method.
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.registerRule(RuleSpecification<Match>, EventFilter<? super Match>) This method was added to the API as an error, should not be available for transformation developers.
  org.eclipse.viatra.transformation.runtime.emf.transformation.batch.BatchTransformationStatements.registerRules(BatchTransformationRuleGroup) This method was added to the API as an error, should not be available for transformation developers.
  org.eclipse.viatra.query.runtime.localsearch.planner.PConstraintInfo.resultProviderAccess() use `PConstraintInfo.resultProviderRequestor()`
  org.eclipse.viatra.query.runtime.localsearch.planner.cost.IConstraintEvaluationContext.resultProviderAccess() use `IConstraintEvaluationContext.resultProviderRequestor()`
  org.eclipse.viatra.query.patternlanguage.emf.util.AdvancedPatternParser.AdvancedPatternParserSnapshot.Builder.unaffectedPatterns(URI, Collection<Pattern>) This method was introduced by error, all its calls are ignored

- Deprecated Constructors
  Constructor and Description
  org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRuleFactory.BatchTransformationRuleBuilder() Use `#BatchTransformationRuleFactory(IQuerySpecification)` instead
  org.eclipse.viatra.transformation.runtime.emf.rules.eventdriven.EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder() Use `#EventDrivenTransformationRuleFactory(IQuerySpecification)` instead
  org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory() Use the static `ReteBackendFactory.INSTANCE` field instead