static ImmutableSubstitution<VariableOrGroundTerm> convertIntoVariableOrGroundTermSubstitution( ImmutableSubstitution<ImmutableTerm> substitution) { ImmutableMap.Builder<Variable, VariableOrGroundTerm> substitutionMapBuilder = ImmutableMap.builder(); for (Map.Entry<Variable, Term> entry : substitution.getMap().entrySet()) { VariableOrGroundTerm value = ImmutabilityTools.convertIntoVariableOrGroundTerm(entry.getValue()); substitutionMapBuilder.put(entry.getKey(), value); } return new ImmutableSubstitutionImpl<>(substitutionMapBuilder.build()); }
public static Optional<ImmutableSubstitution<VariableOrGroundTerm>> computeAtomMGU(DataAtom atom1, DataAtom atom2) { Substitution mutableSubstitution = UnifierUtilities.getMGU( convertToMutableFunction(atom1), convertToMutableFunction(atom2)); if (mutableSubstitution == null) { return Optional.empty(); } ImmutableMap.Builder<Variable, VariableOrGroundTerm> substitutionMapBuilder = ImmutableMap.builder(); for (Map.Entry<Variable, Term> entry : mutableSubstitution.getMap().entrySet()) { VariableOrGroundTerm value = ImmutabilityTools.convertIntoVariableOrGroundTerm(entry.getValue()); substitutionMapBuilder.put(entry.getKey(), value); } ImmutableSubstitution<VariableOrGroundTerm> immutableSubstitution = new ImmutableSubstitutionImpl<>(substitutionMapBuilder.build()); return Optional.of(immutableSubstitution); }
ImmutableSubstitution<VariableOrGroundTerm> convertIntoVariableOrGroundTermSubstitution( ImmutableSubstitution<ImmutableTerm> substitution) { ImmutableMap<Variable, VariableOrGroundTerm> map = substitution.getImmutableMap().entrySet().stream() .collect(ImmutableCollectors.toMap( Map.Entry::getKey, e -> ImmutabilityTools.convertIntoVariableOrGroundTerm(e.getValue()))); return substitutionFactory.getSubstitution(map); }
public Optional<ImmutableSubstitution<VariableOrGroundTerm>> computeAtomMGU(DataAtom atom1, DataAtom atom2) { Substitution mutableSubstitution = unifierUtilities.getMGU( immutabilityTools.convertToMutableFunction(atom1), immutabilityTools.convertToMutableFunction(atom2)); if (mutableSubstitution == null) { return Optional.empty(); } ImmutableMap.Builder<Variable, VariableOrGroundTerm> substitutionMapBuilder = ImmutableMap.builder(); for (Map.Entry<Variable, Term> entry : mutableSubstitution.getMap().entrySet()) { VariableOrGroundTerm value = ImmutabilityTools.convertIntoVariableOrGroundTerm(entry.getValue()); substitutionMapBuilder.put(entry.getKey(), value); } ImmutableSubstitution<VariableOrGroundTerm> immutableSubstitution = substitutionFactory.getSubstitution( substitutionMapBuilder.build()); return Optional.of(immutableSubstitution); }
.collect(ImmutableCollectors.toMap( Map.Entry::getKey, e -> ImmutabilityTools.convertIntoVariableOrGroundTerm(e.getValue())))) .map(SUBSTITUTION_FACTORY::getSubstitution) .orElseThrow(AtomUnificationException::new);
.collect(ImmutableCollectors.toMap( Map.Entry::getKey, e -> ImmutabilityTools.convertIntoVariableOrGroundTerm(e.getValue())))) .map(substitutionFactory::getSubstitution) .orElseThrow(AtomUnificationException::new);