001: /**
002: * <p>
003: * Title: Connection
004: * </p>
005: *
006: * <p>
007: * Description: Represente les informations sur l'entité sous forme d'entête.
008: * </p>
009: *
010: * <p>
011: * Copyright: Copyright (c) 2005
012: * </p>
013: *
014: * commentaire inutile
015: *
016: * <p>
017: * Company:
018: * </p>
019: *
020: * @author Adlani Anouar - Detante Antoine - Klein Gregory - Pepin Pierre
021: * @version 1.0
022: */package httpserver;
023:
024: import java.util.StringTokenizer;
025:
026: public class EnteteEntite extends EnteteHTTP {
027:
028: /**
029: * Construit une instance de EnteteEntite vide
030: */
031: public EnteteEntite() {
032:
033: }
034:
035: /**
036: * Construit une instance de EnteteEntite
037: * @param allow String Indique les types de requêtes acceptées (GET,POST,HEAD)
038: * @param contentEncoding String Format de l'encodage du fichier demandé par le client
039: * @param contentLength String Taille du fichier demandé
040: * @param contentType String Type mime du fichier demandé
041: * @param expires String Date d'expiration du fichier
042: * @param lastModified String Date de la dernière modification du fichier
043: */
044: public EnteteEntite(String allow, String contentEncoding,
045: String contentLength, String contentType, String expires,
046: String lastModified) {
047: this .setAllow(allow);
048: this .setContentEncoding(contentEncoding);
049: this .setContentLength(contentLength);
050: this .setContentType(contentType);
051: this .setExpires(expires);
052: this .setLastModified(lastModified);
053: }
054:
055: /**
056: * Methode qui permet de definir les requetes accéptés
057: * @param allow String Indique les types de requêtes acceptées (GET,POST,HEAD)
058: */
059: public void setAllow(String allow) {
060: super .ajouterChamps("Allow", allow);
061: }
062:
063: /**
064: * Methode qui permet de connaitre les types de requetes accéptés par le serveur
065: * @return String Indique les types de requêtes acceptées (GET,POST,HEAD)
066: */
067: public String getAllow() {
068: return super .getChamps("Allow");
069: }
070:
071: /**
072: * Méthode qui permet de savoir si le paramètre Allow est définit
073: * @return boolean true si définit false sinon
074: */
075: public boolean isSetAllow() {
076: return super .contientChamps("Allow");
077: }
078:
079: /**
080: * Methode qui permet de definir le format d'encodage
081: * @param contentEncoding String Format de l'encodage du fichier demandé par le client
082: */
083: public void setContentEncoding(String contentEncoding) {
084: super .ajouterChamps("Content-Encoding", contentEncoding);
085: }
086:
087: /**
088: * Methode qui permet de connaitre le format d'encodage
089: * @return String Format de l'encodage du fichier demandé par le client
090: */
091: public String getContentEncoding() {
092: return super .getChamps("Content-Encoding");
093: }
094:
095: /**
096: * Méthode qui permet de savoir si le paramètre contentEncoding est définit
097: * @return boolean true si définit false sinon
098: */
099: public boolean isSetContentEncoding() {
100: return super .contientChamps("Content-Encoding");
101: }
102:
103: /**
104: * Méthode qui permet de savoir si le paramètre contentLength est définit
105: * @return boolean true si définit false sinon
106: */
107: public boolean isSetContentLength() {
108: return super .contientChamps("Content-Length");
109: }
110:
111: /**
112: * Methode qui permet de definir la taille du fichier
113: * @param contentLength String Taille du fichier demandé
114: */
115: public void setContentLength(String contentLength) {
116: super .ajouterChamps("Content-Length", contentLength);
117: }
118:
119: /**
120: * Methode qui permet de connaitre la taille du fichier
121: * @return String Taille du fichier demandé
122: */
123: public String getContentLength() {
124: return super .getChamps("Content-Length");
125: }
126:
127: /**
128: * Méthode qui permet de savoir si le paramètre contentType est définit
129: * @return boolean true si définit false sinon
130: */
131: public boolean isSetContentType() {
132: return super .contientChamps("Content-Type");
133: }
134:
135: /**
136: * Methode qui permet de definir le type mime du fichier
137: * @param contentType String Type mime du fichier demandé
138: */
139: public void setContentType(String contentType) {
140: super .ajouterChamps("Content-Type", contentType);
141: }
142:
143: /**
144: * Methode qui permet de connaitre le type mime du fichier
145: * @return String Type mime du fichier demandé
146: */
147: public String getContentType() {
148: return super .getChamps("Content-Type");
149: }
150:
151: /**
152: * Méthode qui permet de savoir si le paramètre expires est définit
153: * @return boolean true si définit false sinon
154: */
155: public boolean isSetExpires() {
156: return super .contientChamps("Expires");
157: }
158:
159: /**
160: * Methode qui permet de definir la date d'expiration du fichier demandé
161: * @param expires Date d'expiration du fichier
162: */
163: public void setExpires(String expires) {
164: super .ajouterChamps("Expires", expires);
165: }
166:
167: /**
168: * Methode qui permet de connaitre la date d'expiration du fichier demandé
169: * @return Date d'expiration du fichier
170: */
171: public String getExpires() {
172: return super .getChamps("Expires");
173: }
174:
175: /**
176: * Méthode qui permet de savoir si le paramètre lastModified est définit
177: * @return boolean true si définit false sinon
178: */
179: public boolean isSetLastModified() {
180: return super .contientChamps("Last-Modified");
181: }
182:
183: /**
184: * Methode qui permet de definir la date de la dernière modification du fichier
185: * @param lastModified Date de la dernière modification du fichier
186: */
187: public void setLastModified(String lastModified) {
188: super .ajouterChamps("Last-Modified", lastModified);
189: }
190:
191: /**
192: * Methode qui permet de connaitre la date de la dernière modification du fichier
193: * @return Date de la dernière modification du fichier
194: */
195: public String getLastModified() {
196: return super .getChamps("Last-Modified");
197: }
198:
199: /**
200: * Construit l'entête entité de reponse avec les paramètres definit
201: * @return String L'entête entité de reponse sous forme de chaine de caractères
202: */
203: public String toString() {
204: StringBuffer sb = new StringBuffer("");
205: if (this .isSetAllow())
206: sb.append(super .champsToString("Allow"));
207: if (this .isSetContentEncoding())
208: sb.append(super .champsToString("Content-Encoding"));
209: if (this .isSetContentLength())
210: sb.append(super .champsToString("Content-Length"));
211: if (this .isSetContentType())
212: sb.append(super .champsToString("Content-Type"));
213: if (this .isSetExpires())
214: sb.append(super .champsToString("Expires"));
215: if (this .isSetLastModified())
216: sb.append(super .champsToString("Last-Modified"));
217: return sb.toString();
218: }
219:
220: /**
221: * Permet de définir les paramètres de EnteteEntite
222: * @param entite
223: * @return
224: */
225: public static EnteteEntite getFromString(String entite) {
226: StringTokenizer st = new StringTokenizer(entite, "\n");
227: EnteteEntite retour = new EnteteEntite();
228: while (st.hasMoreTokens()) {
229: String ligne = st.nextToken();
230:
231: if (ligne.indexOf(":") != -1) { // si la ligne est bien un champs d'entete...
232: String champs = ligne.toUpperCase().substring(0,
233: ligne.indexOf(":"));
234: if (champs.startsWith("ALLOW")) { // si le nom du champs est Allow...
235: retour.setAllow(ligne.substring(
236: ligne.indexOf(":") + 2, ligne.length())); // on met la valeur dans l'objet EnteteEntite
237: }
238: if (champs.startsWith("CONTENT-ENCODING")) {
239: retour.setContentEncoding(ligne.substring(ligne
240: .indexOf(":") + 2, ligne.length()));
241: }
242: if (champs.startsWith("CONTENT-TYPE")) {
243: retour.setContentType(ligne.substring(ligne
244: .indexOf(":") + 2, ligne.length()));
245: }
246: if (champs.startsWith("CONTENT-LENGTH")) {
247: retour.setContentLength(ligne.substring(ligne
248: .indexOf(":") + 2, ligne.length()));
249: }
250: if (champs.startsWith("EXPIRES")) {
251: retour.setExpires(ligne.substring(ligne
252: .indexOf(":") + 2, ligne.length()));
253: }
254: if (champs.startsWith("LAST-MODIFIED")) {
255: retour.setLastModified(ligne.substring(ligne
256: .indexOf(":") + 2, ligne.length()));
257: }
258: }
259: }
260: return retour;
261: }
262: }
|