Package pigeons

# Class Food

java.lang.Object
pigeons.Food

    public class Food
    extends java.lang.Object

Classe permettant de gÃ©rer une nourriture

Since:
  1.0

## Field Summary

Fields
Modifier and Type | Field | Description
--- | --- | ---
`java.awt.Color` | `color` | Couleur de la nourriture - Rouge si non consommable - Jaune si consommable
`private long` | `freshTimeLeft` | Temps restant de fraicheur de la nourriture
`private boolean` | `isFresh` | ConsommabilitÃ© de la nourriture
`private java.util.concurrent.atomic.AtomicInteger` | `numWriter` | Nombre de thread travaillant en ecriture sur l'objet
`private Position` | `position` | Position de la nourriture

## Constructor Summary

Constructors
Constructor | Description
--- | ---
`Food​(int x, int y)` | Constructeur de l'objet representant une nourriture
`Food​(Position position)` | Constructeur de l'objet representant une nourriture

## Method Summary

Modifier and Type | Method | Description
--- | --- | ---
`java.awt.Color` | `getColor()` | Obtenir la couleur associÃ© une nourriture
`long` | `getFreshTimeLeft()` | Obtenir le temps de fraicheur restant Ã une nourriture Cette mÃ©thode est executÃ© avec un verrou ce qui permet aux oiseaux de recuperer la propriÃ©tÃ© en Ã©tant sur que la variable n'est pas en cours de modification
`Position` | `getPosition()` | Obtenir la position de la nourriture
`boolean` | `isFresh()` | Obtenir la consommabitÃ© de la nourriture Cette fonction est executÃ© avec un verrou ce qui permet aux oiseaux de recuperer la propriÃ©tÃ© en Ã©tant sur que la variable n'est pas en cours de modification
`void` | `reduceFreshTimeLeft​(long toReduce)` | Reduit le temps de fraicheur de la nourriture.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### position

private Position position
Position de la nourriture

### isFresh

private boolean isFresh
ConsommabilitÃ© de la nourriture

### freshTimeLeft

private long freshTimeLeft
Temps restant de fraicheur de la nourriture

### numWriter

private java.util.concurrent.atomic.AtomicInteger numWriter
Nombre de thread travaillant en ecriture sur l'objet

### color

public java.awt.Color color
Couleur de la nourriture - Rouge si non consommable - Jaune si consommable

## Constructor Details

### Food

public Food​(Position position)
Constructeur de l'objet representant une nourriture

Parameters:
  `position` - Position de la nourriture

### Food

public Food​(int x, int y)
Constructeur de l'objet representant une nourriture

Parameters:
  `x` - position sur l'axe des abscisses de la nourriture
  `y` - postiion sur l'axe des ordonnÃ©es de la nourriture

## Method Details

### getPosition

public Position getPosition()
Obtenir la position de la nourriture

Returns:
  position de la nourriture

### reduceFreshTimeLeft

public void reduceFreshTimeLeft​(long toReduce)
Reduit le temps de fraicheur de la nourriture. Si le temps restants de fraicheur, la nourriture est considerÃ© comme non consommable et la variable `isFresh` vaut desormais `true`. Par ailleurs la couleur d'une nourriture devient rouge

Parameters:
  `toReduce` - Temps Ã retirer du temps restant de fraicheur

### getColor

public java.awt.Color getColor()
Obtenir la couleur associÃ© une nourriture

Returns:
  La couleur associÃ© Ã la nouritture, jaune si consommable, rouge sinon

### getFreshTimeLeft

public long getFreshTimeLeft()
Obtenir le temps de fraicheur restant Ã une nourriture Cette mÃ©thode est executÃ© avec un verrou ce qui permet aux oiseaux de recuperer la propriÃ©tÃ© en Ã©tant sur que la variable n'est pas en cours de modification

Returns:
  Temps de fraicheur restant Ã la nourriture

### isFresh

public boolean isFresh()
Obtenir la consommabitÃ© de la nourriture Cette fonction est executÃ© avec un verrou ce qui permet aux oiseaux de recuperer la propriÃ©tÃ© en Ã©tant sur que la variable n'est pas en cours de modification

Returns:
  boolean