korat.finitization
Interface IClassDomain

All Known Implementing Classes:
ClassDomain, NullClassDomain

public interface IClassDomain

Class domain is a set of objects of some concrete reference type. Class domain can be either initialized by specifying the number of objects that will be created or by adding already created objects to it.

Elements of the class domain must be ordered, and accessible by an index.

Primitive types or abstract types (represented by either abstract class or interface) can not form their class domain

Implementation should override boolean equals(Object) method because two IClassDomains are equal if their classOfObjects are same.

Author:
korat.team

Method Summary
 void addObject(Object obj)
          Add existing object into class domain.
 void addObjects(Collection col)
          Add all objects of the existing collection to the class domain
 void addObjects(Object[] objs)
          Add all objects of the existing array to the class domain
 String getClassNameOfObjects()
          Returns the name of class type for this domain Equal to {IClassDomain}.getClassOfObjects.getName();
 Class getClassOfObjects()
          Returns the Class object for elements of this Domain
 int getSize()
          Returns number of objects in this class domain
 void includeInIsomorphismCheck(boolean include)
           If this option is set, the class domain will be included in isomorphism checking.
 boolean isIncludedInIsomorphismChecking()
           
 

Method Detail

getClassOfObjects

Class getClassOfObjects()
Returns the Class object for elements of this Domain


getClassNameOfObjects

String getClassNameOfObjects()
Returns the name of class type for this domain

Equal to {IClassDomain}.getClassOfObjects.getName();


getSize

int getSize()
Returns number of objects in this class domain


includeInIsomorphismCheck

void includeInIsomorphismCheck(boolean include)

If this option is set, the class domain will be included in isomorphism checking. It means, that in case where one object from this class domain is used as a value for some field, it and all objects from this class domain with lower indices, will not be used as a value for any other field in current candidate.

By default, all class domains are included in isomorphism checking

Parameters:
include - - true if the class domain should be included in isomorphism checking

isIncludedInIsomorphismChecking

boolean isIncludedInIsomorphismChecking()
Returns:
is this class domain is included in isomorphism check

addObject

void addObject(Object obj)
Add existing object into class domain. The added object is already initialized and initialize operation will not affect it.

Parameters:
obj - - object to be added, null is not allowed

addObjects

void addObjects(Object[] objs)
Add all objects of the existing array to the class domain

Parameters:
objs - - array of objects, null is not allowed

addObjects

void addObjects(Collection col)
Add all objects of the existing collection to the class domain

Parameters:
col - - collection of objects, null is not allowed