Class AssociativeFormulaSupport<T extends SimpleLogicalFormula>
- java.lang.Object
-
- org.tweetyproject.logics.commons.syntax.ComplexLogicalFormulaAdapter
-
- org.tweetyproject.logics.commons.syntax.AssociativeFormulaSupport<T>
-
- Type Parameters:
T- The type of the formulas which are saved by the associative formula support.
- All Implemented Interfaces:
java.lang.Iterable<T>,java.util.Collection<T>,java.util.List<T>,Formula,AssociativeFormula<T>,ComplexLogicalFormula,LogicStructure,SimpleLogicalFormula
public class AssociativeFormulaSupport<T extends SimpleLogicalFormula> extends ComplexLogicalFormulaAdapter implements AssociativeFormula<T>
This class provides common implementation for associative formulas that are formulas which consists of several other formulas. It implements common methods like getTerms(), getFormulas() or getAtoms(). Although SimpleLogicalFormula can be used as content for an associative Formula this support class also implements the functionality for ComplexLogicalFormula and assumes that methods of ComplexLogicalFormula like substitute() are not called by the parent of the AssociativeFormulaSupport, otherwise a ClassCastException will occur.- Author:
- Tim Janus
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceAssociativeFormulaSupport.AssociativeSupportBridgeThis interface defines a bridge between the AssociativeFormula implementation like a concrete Disjunction and the AssociativeFormulaSupport object which adds the implementation of the common functionality.
-
Constructor Summary
Constructors Constructor Description AssociativeFormulaSupport(AssociativeFormulaSupport.AssociativeSupportBridge bridge)Ctor: Creates a AssociativeFormulaSupport object that uses the given bridgeAssociativeFormulaSupport(AssociativeFormulaSupport<T> other)Copy-Ctor creates a deep copy of the associative formula support.
-
Method Summary
Modifier and Type Method Description voidadd(int index, T element)booleanadd(T e)booleanadd(T... formulas)Appends the specified elements to the end of this collection (optional operation).booleanaddAll(int index, java.util.Collection<? extends T> c)booleanaddAll(java.util.Collection<? extends T> c)voidclear()AssociativeFormulaSupport<T>clone()Creates a deep copy of this formulabooleancontains(java.lang.Object o)booleancontainsAll(java.util.Collection<?> c)java.util.Collection<T>copyHelper(java.util.Collection<T> collection)This method generates a deep copy of the given collection of RelationalFormulabooleanequals(java.lang.Object other)Tget(int index)java.util.Set<? extends Atom>getAtoms()Processes the set of all atoms which appear in this formulajava.util.List<T>getFormulas()<C extends SimpleLogicalFormula>
java.util.Set<C>getFormulas(java.lang.Class<C> cls)Process the formulas of type C that are children of this associative formulajava.lang.Class<? extends Predicate>getPredicateCls()java.util.Set<? extends Predicate>getPredicates()Processes the set of all predicates which appear in this formulaSignaturegetSignature()Returns the signature of the language of this formula.java.util.Set<Term<?>>getTerms()<C extends Term<?>>
java.util.Set<C>getTerms(java.lang.Class<C> cls)Processes the set containing all terms of type C.inthashCode()intindexOf(java.lang.Object o)booleanisEmpty()booleanisWellFormed()Checks if this formula is well formed in the logical langauge.java.util.Iterator<T>iterator()intlastIndexOf(java.lang.Object o)java.util.ListIterator<T>listIterator()java.util.ListIterator<T>listIterator(int index)Tremove(int index)booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection<?> c)booleanretainAll(java.util.Collection<?> c)Tset(int index, T element)intsize()java.util.List<T>subList(int fromIndex, int toIndex)ComplexLogicalFormulasubstitute(Term<?> v, Term<?> t)Substitutes all occurrences of term "v" in this formula by term "t" and returns the new formula.java.lang.Object[]toArray()<C> C[]toArray(C[] a)java.lang.StringtoString()-
Methods inherited from class org.tweetyproject.logics.commons.syntax.ComplexLogicalFormulaAdapter
containsTermsOfType, exchange, isGround, isLiteral, substitute
-
Methods inherited from interface org.tweetyproject.logics.commons.syntax.interfaces.SimpleLogicalFormula
isLiteral
-
-
-
-
Constructor Detail
-
AssociativeFormulaSupport
public AssociativeFormulaSupport(AssociativeFormulaSupport.AssociativeSupportBridge bridge)
Ctor: Creates a AssociativeFormulaSupport object that uses the given bridge- Parameters:
bridge- an associative support bridge
-
AssociativeFormulaSupport
public AssociativeFormulaSupport(AssociativeFormulaSupport<T> other)
Copy-Ctor creates a deep copy of the associative formula support.- Parameters:
other- another associative formula suppport
-
-
Method Detail
-
copyHelper
public java.util.Collection<T> copyHelper(java.util.Collection<T> collection)
This method generates a deep copy of the given collection of RelationalFormula- Parameters:
collection- The collection of RelationalFormula to copy- Returns:
- A collection containing the deep copy of the given collection
-
getFormulas
public java.util.List<T> getFormulas()
- Specified by:
getFormulasin interfaceAssociativeFormula<T extends SimpleLogicalFormula>- Returns:
- all the formulas saved as childs in the associative formula
-
getFormulas
public <C extends SimpleLogicalFormula> java.util.Set<C> getFormulas(java.lang.Class<C> cls)
Description copied from interface:AssociativeFormulaProcess the formulas of type C that are children of this associative formula- Specified by:
getFormulasin interfaceAssociativeFormula<T extends SimpleLogicalFormula>- Type Parameters:
C- the type of formulas- Parameters:
cls- the class structure defining the type of formulas which are searched.- Returns:
- A set of formulas of type C which are members of the associative formula
-
getAtoms
public java.util.Set<? extends Atom> getAtoms()
Description copied from interface:SimpleLogicalFormulaProcesses the set of all atoms which appear in this formula- Specified by:
getAtomsin interfaceSimpleLogicalFormula- Returns:
- The set of all atoms
-
getPredicates
public java.util.Set<? extends Predicate> getPredicates()
Description copied from interface:SimpleLogicalFormulaProcesses the set of all predicates which appear in this formula- Specified by:
getPredicatesin interfaceSimpleLogicalFormula- Returns:
- all predicates that appear in this formula
-
getSignature
public Signature getSignature()
Description copied from interface:FormulaReturns the signature of the language of this formula.- Specified by:
getSignaturein interfaceFormula- Returns:
- the signature of the language of this formula.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Specified by:
equalsin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
equalsin interfacejava.util.List<T extends SimpleLogicalFormula>- Specified by:
equalsin interfaceSimpleLogicalFormula- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
hashCodein interfacejava.util.List<T extends SimpleLogicalFormula>- Specified by:
hashCodein interfaceSimpleLogicalFormula- Overrides:
hashCodein classjava.lang.Object
-
clone
public AssociativeFormulaSupport<T> clone()
Description copied from interface:SimpleLogicalFormulaCreates a deep copy of this formula- Specified by:
clonein interfaceComplexLogicalFormula- Specified by:
clonein interfaceSimpleLogicalFormula- Specified by:
clonein classComplexLogicalFormulaAdapter- Returns:
- the cloned formula
-
getTerms
public java.util.Set<Term<?>> getTerms()
- Specified by:
getTermsin interfaceLogicStructure- Returns:
- a set containing all terms of this logical structure
-
getTerms
public <C extends Term<?>> java.util.Set<C> getTerms(java.lang.Class<C> cls)
Description copied from interface:LogicStructureProcesses the set containing all terms of type C. This method uses the equals method of the given Class and therefore does not add terms which are sub classes of type C to the set.- Specified by:
getTermsin interfaceLogicStructure- Overrides:
getTermsin classComplexLogicalFormulaAdapter- Type Parameters:
C- the type of terms- Parameters:
cls- The Class structure containing type information about the searched term- Returns:
- A set containing all terms of type C of this logical structure
-
substitute
public ComplexLogicalFormula substitute(Term<?> v, Term<?> t) throws java.lang.IllegalArgumentException
Description copied from interface:ComplexLogicalFormulaSubstitutes all occurrences of term "v" in this formula by term "t" and returns the new formula.- Specified by:
substitutein interfaceComplexLogicalFormula- Parameters:
v- the term to be substituted.t- the term to substitute.- Returns:
- a formula where every occurrence of "v" is replaced by "t".
- Throws:
java.lang.IllegalArgumentException- if "v" and "t" are of different sorts
-
isWellFormed
public boolean isWellFormed()
Description copied from interface:ComplexLogicalFormulaChecks if this formula is well formed in the logical langauge. What well- formed means is highly language dependent and the documentation of implementing sub classes shall describe the well formed term for the language they model.- Specified by:
isWellFormedin interfaceComplexLogicalFormula- Overrides:
isWellFormedin classComplexLogicalFormulaAdapter- Returns:
- true if the formula is well-formed, false otherwise
-
add
public boolean add(T e)
- Specified by:
addin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
addin interfacejava.util.List<T extends SimpleLogicalFormula>
-
add
public boolean add(T... formulas)
Appends the specified elements to the end of this collection (optional operation).- Parameters:
formulas- to be appended to collection- Returns:
- true if all elements were added, false otherwise
-
addAll
public boolean addAll(java.util.Collection<? extends T> c)
- Specified by:
addAllin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
addAllin interfacejava.util.List<T extends SimpleLogicalFormula>
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
clearin interfacejava.util.List<T extends SimpleLogicalFormula>
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
containsin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
containsin interfacejava.util.List<T extends SimpleLogicalFormula>
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
- Specified by:
containsAllin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
containsAllin interfacejava.util.List<T extends SimpleLogicalFormula>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
isEmptyin interfacejava.util.List<T extends SimpleLogicalFormula>
-
iterator
public java.util.Iterator<T> iterator()
- Specified by:
iteratorin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
iteratorin interfacejava.lang.Iterable<T extends SimpleLogicalFormula>- Specified by:
iteratorin interfacejava.util.List<T extends SimpleLogicalFormula>
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
removein interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
removein interfacejava.util.List<T extends SimpleLogicalFormula>
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
- Specified by:
removeAllin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
removeAllin interfacejava.util.List<T extends SimpleLogicalFormula>
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
- Specified by:
retainAllin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
retainAllin interfacejava.util.List<T extends SimpleLogicalFormula>
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
sizein interfacejava.util.List<T extends SimpleLogicalFormula>
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArrayin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
toArrayin interfacejava.util.List<T extends SimpleLogicalFormula>
-
toArray
public <C> C[] toArray(C[] a)
- Specified by:
toArrayin interfacejava.util.Collection<T extends SimpleLogicalFormula>- Specified by:
toArrayin interfacejava.util.List<T extends SimpleLogicalFormula>
-
getPredicateCls
public java.lang.Class<? extends Predicate> getPredicateCls()
- Specified by:
getPredicateClsin interfaceSimpleLogicalFormula- Returns:
- The class description of the predicate used by this formula.
-
add
public void add(int index, T element)- Specified by:
addin interfacejava.util.List<T extends SimpleLogicalFormula>
-
addAll
public boolean addAll(int index, java.util.Collection<? extends T> c)- Specified by:
addAllin interfacejava.util.List<T extends SimpleLogicalFormula>
-
get
public T get(int index)
- Specified by:
getin interfacejava.util.List<T extends SimpleLogicalFormula>
-
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOfin interfacejava.util.List<T extends SimpleLogicalFormula>
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOfin interfacejava.util.List<T extends SimpleLogicalFormula>
-
listIterator
public java.util.ListIterator<T> listIterator()
- Specified by:
listIteratorin interfacejava.util.List<T extends SimpleLogicalFormula>
-
listIterator
public java.util.ListIterator<T> listIterator(int index)
- Specified by:
listIteratorin interfacejava.util.List<T extends SimpleLogicalFormula>
-
remove
public T remove(int index)
- Specified by:
removein interfacejava.util.List<T extends SimpleLogicalFormula>
-
set
public T set(int index, T element)
- Specified by:
setin interfacejava.util.List<T extends SimpleLogicalFormula>
-
subList
public java.util.List<T> subList(int fromIndex, int toIndex)
- Specified by:
subListin interfacejava.util.List<T extends SimpleLogicalFormula>
-
-