]> git.mxchange.org Git - pizzaservice-war.git/blob - src/java/org/mxchange/pizzaapplication/application/PizzaApplication.java
Got rid of product iterator stuff and used a smaller for() loop
[pizzaservice-war.git] / src / java / org / mxchange / pizzaapplication / application / PizzaApplication.java
1 /*
2  * Copyright (C) 2015 Roland Haeder
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 package org.mxchange.pizzaapplication.application;
18
19 import javax.servlet.http.HttpServletRequest;
20 import javax.servlet.http.HttpSession;
21 import org.mxchange.jcore.application.Application;
22 import org.mxchange.pizzaapplication.product.Product;
23
24 /**
25  *
26  * @author Roland Haeder
27  */
28 public interface PizzaApplication extends Application {
29         /**
30          * HTTP parameter "amount"
31          */
32         public static final String HTTP_PARAM_AMOUNT = "amount"; //NOI18N
33
34         /**
35          * HTTP parameter "choose"
36          */
37         public static final String HTTP_PARAM_CHOOSE = "choose"; //NOI18N
38
39         /**
40          * Session key "ordered"
41          */
42         public static final String SESSION_ORDERED = "ordered"; //NOI18N
43
44         /**
45          * Mask for all parameters
46          */
47         public static final String HTTP_PARAM_MASK = "%s[%s]"; //NOI18N
48
49         /**
50          * Some "getter" for amount from session
51          *
52          * @param product Product instance
53          * @param session Session instance
54          * @return Amount as string
55          */
56         public String getAmountFromSession (final Product product, final HttpSession session);
57
58         /**
59          * Some "getter" for choose from session
60          *
61          * @param product Product instance
62          * @param session Session instance
63          * @return Choose as string
64          */
65         public String getChooseFromSession (final Product product, final HttpSession session);
66
67         /**
68          * Handler for amount from session
69          *
70          * @param product Product instance
71          * @param request Request instance
72          * @param session Session instance
73          * @return Amount as string
74          */
75         public String handleAmountFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
76
77         /**
78          * Handler for choosen (checkbox) from request or session
79          *
80          * @param product Product instance
81          * @param request Request instance
82          * @param session Session instance
83          * @return Amount as string
84          */
85         public String handleChooseFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
86
87         /**
88          * Some "getter" for printable choosen (checkbox) from request or session
89          *
90          * @param product Product instance
91          * @param request Request instance
92          * @param session Session instance
93          * @return Amount as string
94          */
95         public String getPrintableChoosenFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
96
97         /**
98          * Some "getter" for total price of position from request or session.
99          * Single price and amount is multiplyed.
100          *
101          * @param product Product instance
102          * @param request Request instance
103          * @param session Session instance
104          * @return Amount as string
105          */
106         public float getTotalPositionPriceFromRequestSession (final Product product, final HttpServletRequest request, final HttpSession session);
107
108         /**
109          * Checks whether the given product is choosen, request overules session.
110          *
111          * @param product Product instance
112          * @param request Request instance
113          * @param session Session instance
114          * @return Whether the product is choosen
115          */
116         public boolean isProductChoosen (final Product product, final HttpServletRequest request, final HttpSession session);
117
118         /**
119          * Calculates total price of all choosen products
120          *
121          * @param request Request instance
122          * @param session Session instance
123          * @return Total price of all choosen products
124          */
125         public float calculateTotalPrice (final HttpServletRequest request, final HttpSession session);
126
127         /**
128          * Calculates total amount of all choosen products
129          *
130          * @param request Request instance
131          * @param session Session instance
132          * @return Total amount of all choosen products
133          */
134         public int calculateTotalAmount (final HttpServletRequest request, final HttpSession session);
135
136         /**
137          * Some "getter" for HTML code 'checked="checked"' if the product is choosen
138          *
139          * @param product Product instance
140          * @param request Request instance
141          * @param session Session instance
142          * @return Whether the product is choosen
143          */
144         public String getCheckedHtmlFromProduct (final Product product, final HttpServletRequest request, final HttpSession session);
145
146         /**
147          * Some "getter" for HTML code 'disabled="disabled"' for e.g. submit buttons
148          *
149          * @param request Request instance
150          * @param session Session instance
151          * @return Whether the product is choosen
152          */
153         public String getDisabledHtmlFromSession (final HttpServletRequest request, final HttpSession session);
154
155         /**
156          * Marks given product as ordered in session
157          *
158          * @param product Product to mark as ordered
159          * @param session Session instance
160          */
161         public void markProductAsOrdered(final Product product, final HttpSession session);
162
163         /**
164          * Unmarks given product as ordered in session
165          *
166          * @param product Product to unmark as ordered
167          * @param session Session instance
168          */
169         public void unmarkProductAsOrdered(final Product product, final HttpSession session);
170
171         /**
172          * Some getter for printable value from session or an empty string for null.
173          *
174          * @param session Session instance
175          * @param key Key to get
176          * @return Value from key, empty string for null
177          */
178         public Object getPrintableValeFromSession (final HttpSession session, final String key);
179
180         /**
181          * Somewhat setter in session
182          *
183          * @param session Session instance
184          * @param key Session key to set
185          * @param value Value to set
186          */
187         public void setValueInSession (final HttpSession session, final String key, final Object value);
188
189         /**
190          * Some "getter" for a an array of unmarked products
191          * 
192          * @param session HttpSession instance
193          * @return Unmarked products
194          */
195         public Product[] getUnmarkedProducts (final HttpSession session);
196
197         /**
198          * Some "getter" for a an array of all products
199          * 
200          * @return Unmarked products
201          */
202         public Product[] getProducts ();
203 }