Implémentation de la classe Class

This commit is contained in:
2020-11-22 15:53:14 +01:00
parent 480d677324
commit 98bb72bb1f

262
AppThinker/src/Class.java Normal file
View File

@@ -0,0 +1,262 @@
import java.util.ArrayList;
import java.util.List;
/**
* Gère une classe du projet.
* @author V.BOULANGER
*/
public class Class {
public static int _classId = 0;
public static final int RECTANGLE = 0;
public static final int CIRCLE = 1;
private int _id;
private String _name;
private int _posX;
private int _posY;
private int _sizeX;
private int _sizeY;
private int _shape;
private List<Attribute> _attributes;
private List<Method> _methods;
/**
* Constructeur - Crée une instance de Class.
* @param posX La position sur l'axe X de la nouvelle classe.
* @param posY La position sur l'axe Y de la nouvelle classe.
* @param shape La forme de la nouvelle classe (Class.RECTANGLE ou Class.CIRCLE)
*/
public Class(int posX, int posY, int shape){
_classId++;
this._id = _classId;
this._name = "Classe" + _id;
this._posX = posX;
this._posY = posY;
this._sizeX = 30;
this._sizeY = 60;
this._shape = shape;
this._attributes = new ArrayList<Attribute>();
this._methods = new ArrayList<Method>();
}
/**
* Constructeur - Crée une instance de Class avec les paramètres déterminés.
* @param name Le nom de la classe importée.
* @param posX La position sur l'axe X de la classe importée.
* @param posY La position sur l'axe Y de la classe importée.
* @param sizeX La taille sur l'axe X de la classe importée.
* @param sizeY La taille sur l'axe Y de la classe importée.
* @param shape La forme de la classe importée (Class.RECTANGLE ou Class.CIRCLE).
* @param attributes La liste des attributs de la classe importée.
* @param methods La liste des méthodes de la classe importée.
*/
public Class(String name, int posX, int posY, int sizeX, int sizeY, int shape, ArrayList<Attribute> attributes, ArrayList<Method> methods){
_classId++;
this._id = _classId;
this._name = name;
this._posX = posX;
this._posY = posY;
this._sizeX = sizeX;
this._sizeY = sizeY;
this._shape = shape;
this._attributes = attributes;
this._methods = methods;
}
/**
* Récupère le numéro de la classe.
* @return Le numéro de la classe.
*/
public int getId() {
return _id;
}
/**
* Récupère le nom de la classe.
* @return Le nom de la classe.
*/
public String getName() {
return _name;
}
/**
* Paramètre le nom de la classe.
* @param name Le nom de la classe.
*/
public void setName(String name) {
this._name = name;
}
/**
* Récupère la position sur l'axe X de la classe.
* @return La position sur l'axe X de la classe.
*/
public int getPosX() {
return _posX;
}
/**
* Paramètre la position sur l'axe X de la classe.
* @param posX La position sur l'axe X de la classe.
*/
public void setPosX(int posX) {
this._posX = posX;
}
/**
* Récupère la position sur l'axe Y de la classe.
* @return La position sur l'axe Y de la classe.
*/
public int getPosY() {
return _posY;
}
/**
* Paramètre la position sur l'axe Y de la classe.
* @param posY La position sur l'axe Y de la classe.
*/
public void setPosY(int posY) {
this._posY = posY;
}
/**
* Récupère la taille sur l'axe X de la classe.
* @return La taille sur l'axe X de la classe.
*/
public int getSizeX() {
return _sizeX;
}
/**
* Paramètre la taille sur l'axe X de la classe.
* @param sizeX La taille sur l'axe X de la classe.
*/
public void setSizeX(int sizeX) {
this._sizeX = sizeX;
}
/**
* Récupère la taille sur l'axe Y de la classe.
* @return La taille sur l'axe Y de la classe.
*/
public int getSizeY() {
return _sizeY;
}
/**
* Paramètre la taille sur l'axe Y de la classe.
* @param sizeY La taille sur l'axe Y de la classe.
*/
public void setSizeY(int sizeY) {
this._sizeY = sizeY;
}
/**
* Paramètre la taille sur l'axe X et Y de la classe.
* @param sizeX La taille sur l'axe X de la classe.
* @param sizeY La taille sur l'axe Y de la classe.
*/
public void resize(int sizeX, int sizeY){
this._sizeX = sizeX;
this._sizeY = sizeY;
}
/**
* Récupère la forme graphique de la classe.
* @return La forme graphique de la classe (Class.RECTANGLE ou Class.CIRCLE).
*/
public int getShape() {
return _shape;
}
/**
* Paramètre la forme graphique de la classe.
* @param shape La forme graphique de la classe (Class.RECTANGLE ou Class.CIRCLE).
*/
public void setShape(int shape) {
this._shape = shape;
}
/**
* Sélectionne la classe dans l'espace graphique.
*/
public void select(){
}
/**
* Désélectionne la classe dans l'espace graphique.
*/
public void deselect(){
}
/**
* Récupère tous les attributs de la classe.
* @return Les attributs de la classe.
*/
public List<Attribute> getAttributes(){
return this._attributes;
}
/**
* Ajoute un attribut à la classe.
* @param a L'attribut à ajouter.
* @author V.BOULANGER
*/
public void addAttribute(Attribute a){
this._attributes.add(a);
}
/**
* Supprime un attribut de la classe.
* @param index L'index de l'attribut à supprimer.
* @author V.BOULANGER
*/
public void removeAttribute(int index){
this._attributes.remove(index);
}
/**
* Supprime tous les attributs de la classe.
* @author V.BOULANGER
*/
public void clearAttributes(){
this._attributes.clear();
}
/**
* Récupère toutes les méthodes de la classe.
* @return Les méthodes de la classe.
*/
public List<Method> getMethods(){
return this._methods;
}
/**
* Ajoute une méthode à la classe.
* @param m La méthode à ajouter.
* @author V.BOULANGER
*/
public void addMethod(Method m){
this._methods.add(m);
}
/**
* Supprime une méthode de la classe.
* @param index L'index de la méthode à supprimer.
* @author V.BOULANGER
*/
public void removeMethod(int index){
this._methods.remove(index);
}
/**
* Supprime toutes les méthodes de la classe.
* @author V.BOULANGER
*/
public void clearMethods(){
this._methods.clear();
}
}