Coverage Summary for Class: FlagsBuilder (it.unibo.tuprolog.argumentation.core.runtime.settings)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| FlagsBuilder |
56.2%
(9/16)
|
|
75.9%
(22/29)
|
79.5%
(232/292)
|
| FlagsBuilder$Companion |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(9/9)
|
| Total |
58.8%
(10/17)
|
|
76.7%
(23/30)
|
80.1%
(241/301)
|
package it.unibo.tuprolog.argumentation.core.runtime.settings
import it.unibo.tuprolog.argumentation.Flags
import it.unibo.tuprolog.argumentation.core.flags.ArgumentLabellingMode
import it.unibo.tuprolog.argumentation.core.flags.AutoTransposition
import it.unibo.tuprolog.argumentation.core.flags.GraphBuildMode
import it.unibo.tuprolog.argumentation.core.flags.GraphBuilder
import it.unibo.tuprolog.argumentation.core.flags.GraphExtension
import it.unibo.tuprolog.argumentation.core.flags.MetaConflicts
import it.unibo.tuprolog.argumentation.core.flags.MetaRules
import it.unibo.tuprolog.argumentation.core.flags.ModulesPath
import it.unibo.tuprolog.argumentation.core.flags.OrderingComparator
import it.unibo.tuprolog.argumentation.core.flags.OrderingPrinciple
import it.unibo.tuprolog.argumentation.core.flags.PrologStrictCompatibility
import it.unibo.tuprolog.argumentation.core.flags.QueryMode
import it.unibo.tuprolog.argumentation.core.flags.StatementLabellingMode
import it.unibo.tuprolog.argumentation.core.modules.ArgLibrary
import it.unibo.tuprolog.theory.MutableTheory
import it.unibo.tuprolog.unify.Unificator
import kotlin.jvm.JvmStatic
data class FlagsBuilder(
var emptyBuilder: Boolean = false,
var queryMode: Boolean = QueryMode.default(),
var autoTransposition: Boolean = AutoTransposition.default(),
var prologStrictCompatibility: Boolean = PrologStrictCompatibility.default(),
var graphBuildMode: String = GraphBuildMode.default(),
var argumentLabellingMode: String = ArgumentLabellingMode.default(),
var statementLabellingMode: String = StatementLabellingMode.default(),
var orderingPrinciple: String = OrderingPrinciple.default(),
var orderingComparator: String = OrderingComparator.default(),
var modulesPath: String = ModulesPath.default(),
var graphExtensions: Iterable<String> = GraphExtension.default(),
var metaConflicts: Boolean = MetaConflicts.default(),
var metaRules: Boolean = MetaRules.default(),
var graphBuilder: String = GraphBuilder.default(),
) {
companion object {
/** The facts stating the flags of [target] (see [Flags.of], which writes them) */
@JvmStatic
fun setupSolver(target: FlagsBuilder): MutableTheory = MutableTheory.of(Unificator.default, Flags.of(target).theory().clauses)
}
fun empty(emptyBuilder: Boolean) = apply { this.emptyBuilder = emptyBuilder }
fun queryMode(queryMode: Boolean) = apply { this.queryMode = queryMode }
fun prologStrictCompatibility(prologStrictCompatibility: Boolean) = apply { this.prologStrictCompatibility = prologStrictCompatibility }
fun graphBuildMode(graphBuildMode: String) = apply { this.graphBuildMode = graphBuildMode }
fun argumentLabellingMode(argumentLabellingMode: String) = apply { this.argumentLabellingMode = argumentLabellingMode }
fun statementLabellingMode(statementLabellingMode: String) = apply { this.statementLabellingMode = statementLabellingMode }
fun orderingPrinciple(orderingPrinciple: String) = apply { this.orderingPrinciple = orderingPrinciple }
fun orderingComparator(orderingComparator: String) = apply { this.orderingComparator = orderingComparator }
fun modulesPath(modulesPath: String) = apply { this.modulesPath = modulesPath }
fun graphExtensions(graphExtensions: Iterable<String>) = apply { this.graphExtensions = graphExtensions }
fun metaConflicts(metaConflicts: Boolean) = apply { this.metaConflicts = metaConflicts }
fun metaRules(metaRules: Boolean) = apply { this.metaRules = metaRules }
fun graphBuilder(graphBuilder: String) = apply { this.graphBuilder = graphBuilder }
/** The library of the flags, for a solver of arg2p (the one of [Flags]) */
fun create(): ArgLibrary = Flags.of(this).library()
}