it.unimo.dbgroup.momis.odli3
Class ExtRule

java.lang.Object
  extended byit.unimo.dbgroup.momis.odli3.MomisObject
      extended byit.unimo.dbgroup.momis.odli3.Rule
          extended byit.unimo.dbgroup.momis.odli3.ExtRule
All Implemented Interfaces:
java.io.Serializable

public class ExtRule
extends Rule

Classe che descrive la singola Rule Estensionale

Author:
Francesco Venuta
 Traduzione odli3 delle rule estensionali:
     rule RU1 For all x in A then x in B
     x = iteratore
     A = antecedente
     B = conseguente
 Nel caso di una rule di disgiunzione l'antecedente puo' essere 
 formata da due classi in AND
     For all x in (A AND B) then x in BOTTOM
 
Ad ogni rule viene associato un insieme di Existence Requirement che rappresentano gli insieme che sicuramente devono essere popolati in base alla definizione della rule:
    A ISA B ->  AB,not(A)B = 11,01
    B ISA A ->  AB,not(B)A = 11,01
    A DISJ B -> not(A)B,not(B)A = 01,10
 
See Also:
Serialized Form

Field Summary
 Interface fstClass
          Prima classe (Risolta) coinvolta dalla rule.
 java.util.Vector fstVClass
          Prima classe (da risolvere) coinvolta dalla rule.
 Interface scdClass
          Seconda classe (Risolta) coinvolta dalla rule.
 java.util.Vector scdVClass
          Seconda classe (da risolvere) coinvolta dalla rule.
 java.lang.String type
          Tipo della rule:
 
Fields inherited from class it.unimo.dbgroup.momis.odli3.Rule
_validated, name
 
Fields inherited from class it.unimo.dbgroup.momis.odli3.MomisObject
mod_GenericODLParser, mod_GlobalSchema, mod_QueryManger, mod_SIDes_ARM, mod_SIDes_ARTEMIS, mod_SIDes_EXTM, mod_SIDes_JoinMap, mod_SIDes_main, mod_SIDes_SAM, mod_SIDes_SIM, mod_SIDes_SIM2, mod_SIDes_SLIM, mod_SIDes_TREdit, mod_SIDes_TUNIM
 
Constructor Summary
ExtRule(Interface class1, Interface class2, java.lang.String ty)
           
ExtRule(java.lang.String rname, Interface class1, Interface class2, java.lang.String ty)
           
ExtRule(java.util.Vector class1, java.util.Vector class2, java.lang.String ty)
          Constructor.
 
Method Summary
 Interface getFirstClass()
          Return the first class involved by the rule
 Interface getSecondClass()
          Return the second class involved by the rule
 java.lang.String getType()
           
 void solveUnsolved()
          Tries to solve unsolved instance references.
 java.lang.String toCNF()
          Compute the Conjunctive normal form (CNF) from the rule : ([~]Source1.Class1 + [~]Source2.Class2) The character '~' is optional and denote the negation
(package private)  java.lang.String toOdli3()
          Compute the output in Odli3 form
 java.lang.String toOlcd(TranslationMap tm)
          Returns the OLCD description.
 java.lang.String toString()
          String representation.
 
Methods inherited from class it.unimo.dbgroup.momis.odli3.Rule
getName, getParent, getValidated, setParent, setValidated
 
Methods inherited from class it.unimo.dbgroup.momis.odli3.MomisObject
getAdditionalInfo, getAdditionalInfos, getGenericProducerDescription, getProducerDescription, getProducerId, putAdditionalInfo, setProducerId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

type

public java.lang.String type
Tipo della rule:
   C1 ISA C2 -> Tipo ISA
   C1 DISJ C2 -> Tipo BOTTOM
   C1 SYN C2 = (C1 ISA C2) AND (C2 ISA C1) -> Corrisponde a 2 tipi ISA
 
In definitiva i tipi di rule si riducono a 2.


fstClass

public Interface fstClass
Prima classe (Risolta) coinvolta dalla rule.


scdClass

public Interface scdClass
Seconda classe (Risolta) coinvolta dalla rule.


fstVClass

public java.util.Vector fstVClass
Prima classe (da risolvere) coinvolta dalla rule.


scdVClass

public java.util.Vector scdVClass
Seconda classe (da risolvere) coinvolta dalla rule.

Constructor Detail

ExtRule

public ExtRule(Interface class1,
               Interface class2,
               java.lang.String ty)
Parameters:
ty - Rule type
class1 - First class involved by the rule
class2 - Second class involved by the rule

ExtRule

public ExtRule(java.lang.String rname,
               Interface class1,
               Interface class2,
               java.lang.String ty)

ExtRule

public ExtRule(java.util.Vector class1,
               java.util.Vector class2,
               java.lang.String ty)
Constructor. Il costruttore deve specificare tutti i dati propri della ExtRule,

Parameters:
ty - Tipo della rule
class1 - Vettore di due stringhe contenente nomeSorgente.NomeClasse della prima classe coinvolta
class2 - Vettore di due stringhe contenente nomeSorgente.NomeClasse della seconda classe coinvolta
Method Detail

toCNF

public java.lang.String toCNF()
Compute the Conjunctive normal form (CNF) from the rule : ([~]Source1.Class1 + [~]Source2.Class2) The character '~' is optional and denote the negation

Returns:
The Conjunctive Normal Form

toOdli3

java.lang.String toOdli3()
Compute the output in Odli3 form

Returns:
The Odli3 form

solveUnsolved

public void solveUnsolved()
                   throws OdlException
Tries to solve unsolved instance references.

Throws:
OdlException

toString

public java.lang.String toString()
String representation.


toOlcd

public java.lang.String toOlcd(TranslationMap tm)
Returns the OLCD description.

Overrides:
toOlcd in class Rule

getType

public java.lang.String getType()

getFirstClass

public Interface getFirstClass()
Return the first class involved by the rule


getSecondClass

public Interface getSecondClass()
Return the second class involved by the rule



Universita' di Modena e Reggio Emilia