Implémentation de la classe Link

This commit is contained in:
2020-11-22 15:53:37 +01:00
parent 98bb72bb1f
commit b79b8bf3f7

213
AppThinker/src/Link.java Normal file
View File

@@ -0,0 +1,213 @@
/**
* Gère un lien entre deux classes.
* @author V.BOULANGER
*/
public class Link {
public static int _linksId = 0;
public static final int STRONG = 0;
public static final int WEAK = 1;
public static final int COMPOSITION = 2;
public static final int AGGREGATION = 3;
public static final int INHERITANCE = 4;
public static final int CARD_UNLIMITED = -1;
public static final int CARD_NULL = 0;
public static final int CARD_ONE = 1;
private int _id;
private Class _start;
private int _minCardinalityStart;
private int _maxCardinalityStart;
private Class _end;
private int _minCardinalityEnd;
private int _maxCardinalityEnd;
private int _type;
/**
* Constructeur - Crée une instance d'une classe.
* @param start La classe de départ.
* @param end La classe d'arrivée.
*/
public Link(Class start, Class end){
_linksId++;
this._id = _linksId;
this._start = start;
this._end = end;
this._minCardinalityStart = Link.CARD_NULL;
this._maxCardinalityStart = Link.CARD_UNLIMITED;
this._minCardinalityEnd = Link.CARD_NULL;
this._maxCardinalityEnd = Link.CARD_UNLIMITED;
this._type = Link.STRONG;
}
/**
* Constructeur - Crée une instance d'une classe avec des paramètres déterminés.
* @param start La classe de départ.
* @param end La classe d'arrivée.
* @param minCardinalityStart La cardinalité minimum de la classe de départ.
* @param maxCardinalityStart La cardinalité maximuù de la classe de départ.
* @param minCardinalityEnd La cardinalité minimum de la classe d'arrivée.
* @param maxCardinalityEnd La cardinalité maximum de la classe d'arrivée.
* @param type Le type de lien.
*/
public Link(Class start, Class end, int minCardinalityStart, int maxCardinalityStart, int minCardinalityEnd, int maxCardinalityEnd, int type){
_linksId++;
this._id = _linksId;
this._start = start;
this._end = end;
this._minCardinalityStart = minCardinalityStart;
this._maxCardinalityStart = maxCardinalityStart;
this._minCardinalityEnd = minCardinalityEnd;
this._maxCardinalityEnd = maxCardinalityEnd;
this._type = type;
}
/**
* Récupère le numéro du lien.
* @return Le numéro du lien.
*/
public int getId() {
return _id;
}
/**
* Récupère la classe de départ du lien.
* @return La classe de départ du lien.
*/
public Class getStart() {
return _start;
}
/**
* Paramètre la classe de départ du lien.
* @param start La classe de départ du lien.
*/
public void setStart(Class start) {
this._start = start;
}
/**
* Récupère la cardinalité minimum de la classe de départ.
* @return La cardinalité minimum de la classe de départ.
*/
public int getMinCardinalityStart() {
return _minCardinalityStart;
}
/**
* Paramètre la cardinalité minimum de la classe de départ.
* @param minCardinalityStart La cardinalité minimum de la classe de départ.
*/
public void setMinCardinalityStart(int minCardinalityStart) {
this._minCardinalityStart = minCardinalityStart;
}
/**
* Récupère la cardinalité maximum de la classe de départ.
* @return La cardinalité maximum de la classe de départ.
*/
public int getMaxCardinalityStart() {
return _maxCardinalityStart;
}
/**
* Paramètre la cardinalité maximum de la classe de départ.
* @param maxCardinalityStart La cardinalité maximum de la classe de départ.
*/
public void setMaxCardinalityStart(int maxCardinalityStart) {
this._maxCardinalityStart = maxCardinalityStart;
}
/**
* Récupère la classe d'arrivée du lien.
* @return La classe d'arrivée du lien.
*/
public Class getEnd() {
return _end;
}
/**
* Paramètre la classe d'arrivée.
* @param end La classe d'arrivée.
*/
public void setEnd(Class end) {
this._end = end;
}
/**
* Modifie la direction du lien (permute les classes de départ et d'arrivée).
*/
public void switchDirection(){
Class start = this._start;
int minStart = this._minCardinalityStart;
int maxStart = this._maxCardinalityStart;
this._start = _end;
this._end = start;
this._minCardinalityStart = _minCardinalityEnd;
this._maxCardinalityStart = _maxCardinalityEnd;
this._minCardinalityEnd = minStart;
this._maxCardinalityEnd = maxStart;
}
/**
* Récupère la cardinalité minimum de la classe d'arrivée.
* @return La cardinalité minimum de la classe d'arrivée.
*/
public int getMinCardinalityEnd() {
return _minCardinalityEnd;
}
/**
* Paramètre la cardinalité minimum de la classe d'arrivée.
* @param minCardinalityEnd La cardinalité minimum de la classe d'arrivée.
*/
public void setMinCardinalityEnd(int minCardinalityEnd) {
this._minCardinalityEnd = minCardinalityEnd;
}
/**
* Récupère la cardinalité maximum de la classe d'arrivée.
* @return La cardinalité maximum de la classe d'arrivée.
*/
public int getMaxCardinalityEnd() {
return _maxCardinalityEnd;
}
/**
* Paramètre la cardinalité maximum de la classe d'arrivée.
* @param maxCardinalityEnd La cardinalité maximum de la classe d'arrivée.
*/
public void setMaxCardinalityEnd(int maxCardinalityEnd) {
this._maxCardinalityEnd = maxCardinalityEnd;
}
/**
* Récupère le type du lien.
* @return Le type du lien.
*/
public int getType() {
return _type;
}
/**
* Paramètre le type du lien
* @param type Le type du lien.
*/
public void setType(int type) {
this._type = type;
}
/**
* Sélectionne le lien dans l'espace graphique.
*/
public void select(){
}
/**
* Désélectionne le lien dans l'espace graphique.
*/
public void deselect(){
}
}