This is an old revision of the document!
====== Relation ====== **''public class Relation''**, \\ **''implements Serializable''** Relation describes an SQL relation, that is determined with name and the arity, and in addition it can contain primary key definition. ===== Class Attributes ===== <code java> private long id; private java.lang.String name; private int arity; private int primaryKey; private java.lang.String description; private java.util.ArrayList<java.lang.String> attributeNames; </code> ===== Class Constructor ===== ==== Relation ==== <code java> public Relation (java.lang.String name, int arity, int primaryKey, java.lang.String description) </code> Constructor for relation with well known arity. Attributes are load inside the function by calling ''[[#readattributesnamesindescription|readAttributesNamesInDescritpion]]''\\ //Called by:// * it.unibz.inf.magik.additional.InvolvedVariablesDetector * it.unibz.inf.magik.db.DatabaseConnector * it.unibz.inf.magik.test.CycleDetectionTest * it.unibz.inf.magik.test.TestFK * it.unibz.inf.magik.test.TestFK2 * it.unibz.inf.magik.test.TestHardCaseFDCandFK * it.unibz.inf.magik.test.TestTCQCReasonerBlackWhiteExample * it.unibz.inf.magik.test.TestTCQCReasonerPlainCompanyEx * it.unibz.inf.magik.test.TestValQueryProblem * it.unibz.inf.magik.test.TestTCQCReasonerUnderFDC * it.unibz.inf.magik.test.TestQueryClass * it.unibz.inf.magik.test.TestQueryGeneralization * it.unibz.inf.magik.test.TestQueryToSQL * it.unibz.inf.magik.test.TestTCQCReasonerFKandFD * it.unibz.inf.magik.test.TestTCQCReasonerPlainSchoolEx * it.unibz.inf.magik.test.TestTCQCReasonerTCSuggestions * it.unibz.inf.magik.test.TestPrimaryVioation **Parameters:** * name - name of the relation * arity - arity of the relation * primaryKey - determined with first place in the relation * description - string of the attributes of the relation, separated by comma ---- ==== Relation ==== <code java> public Relation (java.lang.String name, int primaryKey, java.lang.String description) </code> Constructor for relation without knowning arity. Attributes are load inside the function by calling ''[[#readattributesnamesindescription|readAttributesNamesInDescritpion]]''\\ //Called by:// * it.unibz.inf.magik.web.SessionControl * it.unibz.inf.magik.test.TestSimpleComparison **Parameters:** * name - name of the relation * primaryKey - determined with first place in the relation * description - string of the attributes of the relation, separated by comma ===== Class Methods ===== ==== readAttributesNamesInDescription ==== <code java> public static java.util.ArrayList<java.lang.String> readAttributesNamesInDescription(java.lang.String description) </code> Parse the attribute name of a relation from the description field **Parameters:** * description - string with attributes separated by comma **Returns:** * list of the attribute parsed ---- ==== getAttributePosition ==== <code java> public int getAttributePosition (java.lang.String attributeName) </code> Get attribute position in the relation **Parameters:** * attributeName - attribute to search **Returns:** * position in the relation, //-1// if not in the relation ---- ==== getters and setters methods ==== <code java> public java.util.ArrayList<java.lang.String> getAttributeNames() public void setAttributeNames(java.util.ArrayList<java.lang.String> attributeNames) public java.lang.String getName() public void setName(java.lang.String name) public int getArity() public void setArity(int arity) public int getPrimaryKey() public void setPrimaryKey(int primaryKey) public long getId() public void setId(long id) </code> [[magik-demo:developer:class:core:relation|Back to Top]] | [[magik-demo:start|Back to Home Page]]