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 }