View Javadoc

1   package org.qedeq.kernel.bo.logic.model;
2   
3   /**
4    * A model for our mathematical world. It should have entities, functions and predicates.
5    * There should also be predicate and function constants.
6    *
7    * @author  Michael Meyling
8    */
9   public interface Model {
10  
11      /**
12       * Get model description.
13       *
14       * @return  Model description. */
15      public String getDescription();
16  
17      /**
18       * Get number of all entities in this model.
19       *
20       * @return  Number of entities.
21       */
22      public int getEntitiesSize();
23  
24      /**
25       * Get entity <code>number</code>. Also transforms the value of
26       * an entity into the entity itself.
27       *
28       * @param   number  Get entity with this number and value.
29       * @return  Entity.
30       */
31      public Entity getEntity(final int number);
32  
33      /**
34       * Get number of predicates with <code>size</code> number of arguments.
35       *
36       * @param   size    Number of arguments.
37       * @return  Number of predicates in this model.
38       */
39      public int getPredicateSize(final int size);
40  
41      /**
42       * Get predicate of this model.
43       *
44       * @param   size    Number of arguments for predicate.
45       * @param   number  Number of predicate.
46       * @return  Predicate for this model.
47       */
48      public Predicate getPredicate(final int size, final int number);
49  
50      /**
51       * Get predicate constant of this model.
52       *
53       * @param   con     Predicate constant we are looking for.
54       * @return  Predicate for this model.
55       */
56      public Predicate getPredicateConstant(final ModelPredicateConstant con);
57  
58      /**
59       * Get number of functions for this model.
60       *
61       * @param   size    Number of arguments for function.
62       * @return  Number of functions in this model.
63       */
64      public int getFunctionSize(final int size);
65  
66      /**
67       * Get function.
68       *
69       * @param   size    Number of arguments for function.
70       * @param   number  Number of function.
71       * @return  Function in this model.
72       */
73      public Function getFunction(final int size, final int number);
74  
75      /**
76       * Get function constant.
77       *
78       * @param   con     Function constant we are looking for.
79       * @return  Function in this model.
80       */
81      public Function getFunctionConstant(final ModelFunctionConstant con);
82  
83      /**
84       * Create entity out of entity list. This is a transformation of a list
85       * of elements into a class containing these elements.
86       *
87       * @param   array   List of elements.
88       * @return  Class that contains (exactly?) these elements.
89       */
90      public Entity comprehension(final Entity[] array);
91  
92  }