Implémentation de la classe Class
This commit is contained in:
262
AppThinker/src/Class.java
Normal file
262
AppThinker/src/Class.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user