MUSTER IN
WEBCONTROLLERN
arthur tomas
jens himmelreich
VIEW CONTROLLER
MODEL
VIEW CONTROLLER
MODEL
VIEW CONTROLLER
MODEL
EXKURS
VIEW CONTROLLER
MODEL
WebMVC
FUNK
TION
HYGI
ENE
VIEW CONTROLLER
MODEL
CONTROLLER
CONTROLLER
public static void main(String[] arguments) {
if(basket.isPaymentCreditCard()) {
if( customerService.isCreditCardLock(bask
log.info("CreditCard isLocked");
return new ModelAndView(urlComposer.g
}
CreditCardOrder order = creditCardOrder
if(isBankAuthenticationResponse(request))
log.debug("Bank response request with
credtitCartService.finalizeAuthentifi
} else {
AuthentificationIntermediateResponse
= creditCardService.beginAuthenti
urlComposer.getSslUrl("/Bes
if (authResponse.needs5dsecureAuthent
log.debug("CreditCard needs 5dsec
return show5dSecurePage(authRespo
}
}
if (creditCardService.isAuthenticationErr
log.info("creditCardService.isAuthent
return new ModelAndView(urlComposer.g
} else {
log.debug("creditCardService without
creditCardService.authorizePayment(ca
CONTROLLER
CONTROLLER
?
KOMPLEXES
SETUP
REQUEST
RESPONSE
EXPERIMENT
if(basket.isPaymentCreditCard()) {
if( customerService.isCreditCardLock(basket.getCardNumber()) ) {
log.info("CreditCard isLocked");
return new ModelAndView(urlComposer.getSslRedirectUrl("/Zahlungs
}
CreditCardOrder creditCardOrder =
creditCardOrderFactory.newPoseidonOrder(
if(isBankAuthenticationResponse(request)) {
log.debug("Bank response request with: CREDITCARD_5dSECURE_BANK_
creditCardService.finalizeAuthentification(get5dSecureBankRespon
} else {
AuthentificationIntermediateResponse authResponse
= poseidonService.beginAuthentification(poseidonOrder,
urlComposer.getSslUrl("/Bestell.html?submit1
if (authResponse.needs5dsecureAuthentication()) {
log.debug("CreditCard needs 5dsecureAuthentication!");
return show5dSecurePage(authResponse);
}
}
if (creditCardService.isAuthenticationError(creditCardOrder)) {
log.info("creditCardService.isAuthenticationError");
return new ModelAndView(urlComposer.getSslRedirectUrl("/Zahl
} else {
log.debug("creditCardService without AuthenticationError");
creditCardService.authorizePayment(creditCardOrder);
if (creditCardService.isSuccessfullAuthorized(creditCardOrder))
log.debug("creditCardService.isSuccessfullAuthorized");
basket.getPaymentMethod().setCardNumber(creditCardOrder.getA
CONTROLLER
REFACTORING
CLEAN
REZ
EPT
1
2
3
4
5 TE
ST
6
7
8 TE
ST
CLEAN
OBJEKTE
ERKENNEN
PARAMETER
OBJEKT
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule = paymentRuleComposer
.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule = paymentRuleComposer
.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
Session session = modelBuilde
Basket basket = modelBuilder.
Customer customer = modelBuil
PaymentRule paymentRule = pay
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
(session, basket, modelBuilder)
public class SessionContext {
private ModelBuilder modelBuilder;
private PaymentRule paymentRule;
private boolean needsUpdate;
public SessionContext(
ModelBuilder modelBuilder,
RuleComposer rulecomposer) {
this.needsUpdate = false;
this.modelBuilder = modelBuilder;
this.paymentRule = createPaymentRule(rulecomposer);
}
// ...
}
public class SessionContext {
private ModelBuilder modelBuilder;
private PaymentRule paymentRule;
private boolean needsUpdate;
public SessionContext(
ModelBuilder modelBuilder,
RuleComposer rulecomposer) {
this.needsUpdate = false;
this.modelBuilder = modelBuilder;
this.paymentRule = createPaymentRule(rulecomposer);
}
// ...
}
public class SessionContext {
private ModelBuilder modelBuilder;
private PaymentRule paymentRule;
private boolean needsUpdate;
public SessionContext(
ModelBuilder modelBuilder,
RuleComposer rulecomposer) {
this.needsUpdate = false;
this.modelBuilder = modelBuilder;
this.paymentRule = createPaymentRule(rulecomposer);
}
// ...
}
SessionContext(
ModelBuilder modelBuilder,
RuleComposer rulecomposer)
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(
modelBuilder,
paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(context);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(context);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
SessionContext context =
new SessionContext(
modelBuilder,
paymentRuleComposer);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(context);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
disableDesired-
DeliveryDate(context);
ECHTES
OBJEKT
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(context);
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
context.disableDesiredDeliveryDate();
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
context.setDesiredDeliveryDate();
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
context.
disableDesiredDeliveryDate();
METHODEN
OBJEKT
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
context.disableDesiredDeliveryDate();
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(context);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
context.disableDesiredDeliveryDate();
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
@Override
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
context.disableDesiredDeliveryDate();
CountryCode cc =
catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver());
logInfos(basket);
putDataToModel(modelBuilder, basket, cc);
getMavIfStateIsNot-
ValidForCheckout(context)
private ModelAndView getMavIfStateIsNotValidForCheckout(
SessionContext context) {
if( !context.getBasket().hasLineItems() ) {
return new ModelAndView(redirectCartView);
}
if(!context.getBasket().hasInvoiceAddress()) {
return new ModelAndView(redirectInvoiceView);
}
if(!context.getBasket().isValidForCheckout(paymentRule)) {
if( !context.getBasket().isFurnitureOk()
|| !context.getBasket().isPaymentMethodAllowed(
context.getPaymentRule())
|| !context.getBasket().isPaymentMethodValid()) {
return new ModelAndView(redirectInvoiceAndDeliveryView);
}
return new ModelAndView(redirectInvoiceView);
}
return null;
}
private ModelAndView getMavIfStateIsNotValidForCheckout(
SessionContext context) {
if( !context.getBasket().hasLineItems() ) {
return new ModelAndView(redirectCartView);
}
if(!context.getBasket().hasInvoiceAddress()) {
return new ModelAndView(redirectInvoiceView);
}
if(!context.getBasket().isValidForCheckout(paymentRule)) {
if( !context.getBasket().isFurnitureOk()
|| !context.getBasket().isPaymentMethodAllowed(
context.getPaymentRule())
|| !context.getBasket().isPaymentMethodValid()) {
return new ModelAndView(redirectInvoiceAndDeliveryView);
}
return new ModelAndView(redirectInvoiceView);
}
return null;
}
private ModelAndView getMavIfStateIsNotValidForCheckout(
SessionContext context) {
if( !context.getBasket().hasLineItems() ) {
return new ModelAndView(redirectCartView);
}
if(!context.getBasket().hasInvoiceAddress()) {
return new ModelAndView(redirectInvoiceView);
}
if(!context.getBasket().isValidForCheckout(paymentRule)) {
if( !context.getBasket().isFurnitureOk()
|| !context.getBasket().isPaymentMethodAllowed(
context.getPaymentRule())
|| !context.getBasket().isPaymentMethodValid()) {
return new ModelAndView(redirectInvoiceAndDeliveryView);
}
return new ModelAndView(redirectInvoiceView);
}
return null;
}
!context.get
!context.get
context.get
!context.get
public CheckOutState(Basket basket, PaymentRule rule) {
this.basket = basket;
this.rule = rule;
}
public CheckOutStep nextStep() {
if (basket.isEmpty())
return CART;
if (basket.isValidForCheckout(rule))
return LAST_CHECK;
if ((!basket.hasInvoiceAddress())
|| (basket.isFurnitureOk()
&& basket.isPaymentMethodAllowed(rule)
&& basket.isPaymentMethodValid()))
return INVOICE_ADDRESS;
return PAYMENT_AND_DELIVERY;
}
public CheckOutState(Basket basket, PaymentRule rule) {
this.basket = basket;
this.rule = rule;
}
public CheckOutStep nextStep() {
if (basket.isEmpty())
return CART;
if (basket.isValidForCheckout(rule))
return LAST_CHECK;
if ((!basket.hasInvoiceAddress())
|| (basket.isFurnitureOk()
&& basket.isPaymentMethodAllowed(rule)
&& basket.isPaymentMethodValid()))
return INVOICE_ADDRESS;
return PAYMENT_AND_DELIVERY;
}
CheckOutState(
Basket basket,
PaymentRule rule)
private ModelAndView handleOrderRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
CheckOutState state =
new CheckOutState(
context.getBasket(),
context.getPaymentRule());
if (!state.isValidForCheckOut())
return modelAndViewFor(state.nextStep());
context.disableDesiredDeliveryDate();
private ModelAndView handleOrderRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
CheckOutState state =
new CheckOutState(
context.getBasket(),
context.getPaymentRule());
if (!state.isValidForCheckOut())
return modelAndViewFor(state.nextStep());
context.disableDesiredDeliveryDate();
private ModelAndView handleOrderRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
CheckOutState state =
new CheckOutState(
context.getBasket(),
context.getPaymentRule());
if (!state.isValidForCheckOut())
return modelAndViewFor(state.nextStep());
context.disableDesiredDeliveryDate();
state =
new CheckOutState(
context.getBasket(),
context.getPaymentRule());
protected ModelAndView handleSslRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
if( isNotAuthorizised(request, modelBuilder)){
return handleLogin(request, response, modelBuilder);
}
Session session = modelBuilder.getSession();
Basket basket = modelBuilder.getBasket();
Customer customer = modelBuilder.getCustomer();
PaymentRule paymentRule =
(PaymentRule)paymentRuleComposer.compose(basket, customer);
ModelAndView escapeModelAndView =
getMavIfStateIsNotValidForCheckout(basket, paymentRule, session);
if(escapeModelAndView != null) {
return escapeModelAndView;
}
disableDesiredDeliveryDate(session, basket, modelBuilder);
private ModelAndView handleOrderRequest(HttpServletRequest request,
HttpServletResponse response, ModelBuilder modelBuilder)
throws Exception {
SessionContext context =
new SessionContext(modelBuilder, paymentRuleComposer);
CheckOutState state =
new CheckOutState(
context.getBasket(),
context.getPaymentRule());
if (!state.isValidForCheckOut())
return modelAndViewFor(state.nextStep());
context.disableDesiredDeliveryDate();
ER
GO
OBJEKT
≠DING
OBJEKT = DING
OBJEKT ≠ DING
SEIHEB
AMME
OBJEKTE
ERKENNEN
OBJEKTE
GEBÄREN
OBJEKTE
PFLEGEN
OBJEKT
≠DING
SEIHEB
AMME
EN
DE
CREDITS
von tangaroo
von Axel Pfaender
von binaryCoco
von tilaneseven
von spiffie
von static416
von autowitch
von Daveybot
von woodleywonderworks
von Tim Morgan
von Tim Morgan
von Tim Morgan
von nickwheeleroz
von otisarchives1
von *ejk*
von cuulongden
von Laure Wayaffe
von mab @ flickr
von Kazze
von aesop
von SteveMcN
von canonsnapper
von bies

Muster in Webcontrollern

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11.
  • 12.
  • 13.
    CONTROLLER public static voidmain(String[] arguments) { if(basket.isPaymentCreditCard()) { if( customerService.isCreditCardLock(bask log.info("CreditCard isLocked"); return new ModelAndView(urlComposer.g } CreditCardOrder order = creditCardOrder if(isBankAuthenticationResponse(request)) log.debug("Bank response request with credtitCartService.finalizeAuthentifi } else { AuthentificationIntermediateResponse = creditCardService.beginAuthenti urlComposer.getSslUrl("/Bes if (authResponse.needs5dsecureAuthent log.debug("CreditCard needs 5dsec return show5dSecurePage(authRespo } } if (creditCardService.isAuthenticationErr log.info("creditCardService.isAuthent return new ModelAndView(urlComposer.g } else { log.debug("creditCardService without creditCardService.authorizePayment(ca
  • 14.
  • 15.
  • 16.
  • 17.
  • 19.
  • 20.
    if(basket.isPaymentCreditCard()) { if( customerService.isCreditCardLock(basket.getCardNumber())) { log.info("CreditCard isLocked"); return new ModelAndView(urlComposer.getSslRedirectUrl("/Zahlungs } CreditCardOrder creditCardOrder = creditCardOrderFactory.newPoseidonOrder( if(isBankAuthenticationResponse(request)) { log.debug("Bank response request with: CREDITCARD_5dSECURE_BANK_ creditCardService.finalizeAuthentification(get5dSecureBankRespon } else { AuthentificationIntermediateResponse authResponse = poseidonService.beginAuthentification(poseidonOrder, urlComposer.getSslUrl("/Bestell.html?submit1 if (authResponse.needs5dsecureAuthentication()) { log.debug("CreditCard needs 5dsecureAuthentication!"); return show5dSecurePage(authResponse); } } if (creditCardService.isAuthenticationError(creditCardOrder)) { log.info("creditCardService.isAuthenticationError"); return new ModelAndView(urlComposer.getSslRedirectUrl("/Zahl } else { log.debug("creditCardService without AuthenticationError"); creditCardService.authorizePayment(creditCardOrder); if (creditCardService.isSuccessfullAuthorized(creditCardOrder)) log.debug("creditCardService.isSuccessfullAuthorized"); basket.getPaymentMethod().setCardNumber(creditCardOrder.getA
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 37.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = paymentRuleComposer .compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 38.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = paymentRuleComposer .compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); Session session = modelBuilde Basket basket = modelBuilder. Customer customer = modelBuil PaymentRule paymentRule = pay
  • 39.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 40.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 41.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); (session, basket, modelBuilder)
  • 42.
    public class SessionContext{ private ModelBuilder modelBuilder; private PaymentRule paymentRule; private boolean needsUpdate; public SessionContext( ModelBuilder modelBuilder, RuleComposer rulecomposer) { this.needsUpdate = false; this.modelBuilder = modelBuilder; this.paymentRule = createPaymentRule(rulecomposer); } // ... }
  • 43.
    public class SessionContext{ private ModelBuilder modelBuilder; private PaymentRule paymentRule; private boolean needsUpdate; public SessionContext( ModelBuilder modelBuilder, RuleComposer rulecomposer) { this.needsUpdate = false; this.modelBuilder = modelBuilder; this.paymentRule = createPaymentRule(rulecomposer); } // ... }
  • 44.
    public class SessionContext{ private ModelBuilder modelBuilder; private PaymentRule paymentRule; private boolean needsUpdate; public SessionContext( ModelBuilder modelBuilder, RuleComposer rulecomposer) { this.needsUpdate = false; this.modelBuilder = modelBuilder; this.paymentRule = createPaymentRule(rulecomposer); } // ... } SessionContext( ModelBuilder modelBuilder, RuleComposer rulecomposer)
  • 45.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 46.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 47.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext( modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(context); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 48.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(context); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); SessionContext context = new SessionContext( modelBuilder, paymentRuleComposer);
  • 49.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(context); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); disableDesired- DeliveryDate(context);
  • 50.
  • 51.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(context); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 52.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } context.disableDesiredDeliveryDate(); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 53.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } context.setDesiredDeliveryDate(); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); context. disableDesiredDeliveryDate();
  • 54.
  • 55.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } context.disableDesiredDeliveryDate(); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 56.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(context); if(escapeModelAndView != null) { return escapeModelAndView; } context.disableDesiredDeliveryDate(); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc);
  • 57.
    @Override protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } context.disableDesiredDeliveryDate(); CountryCode cc = catalogService.getCountryCodeByIsoCode2(basket.getCountryToDeliver()); logInfos(basket); putDataToModel(modelBuilder, basket, cc); getMavIfStateIsNot- ValidForCheckout(context)
  • 58.
    private ModelAndView getMavIfStateIsNotValidForCheckout( SessionContextcontext) { if( !context.getBasket().hasLineItems() ) { return new ModelAndView(redirectCartView); } if(!context.getBasket().hasInvoiceAddress()) { return new ModelAndView(redirectInvoiceView); } if(!context.getBasket().isValidForCheckout(paymentRule)) { if( !context.getBasket().isFurnitureOk() || !context.getBasket().isPaymentMethodAllowed( context.getPaymentRule()) || !context.getBasket().isPaymentMethodValid()) { return new ModelAndView(redirectInvoiceAndDeliveryView); } return new ModelAndView(redirectInvoiceView); } return null; }
  • 59.
    private ModelAndView getMavIfStateIsNotValidForCheckout( SessionContextcontext) { if( !context.getBasket().hasLineItems() ) { return new ModelAndView(redirectCartView); } if(!context.getBasket().hasInvoiceAddress()) { return new ModelAndView(redirectInvoiceView); } if(!context.getBasket().isValidForCheckout(paymentRule)) { if( !context.getBasket().isFurnitureOk() || !context.getBasket().isPaymentMethodAllowed( context.getPaymentRule()) || !context.getBasket().isPaymentMethodValid()) { return new ModelAndView(redirectInvoiceAndDeliveryView); } return new ModelAndView(redirectInvoiceView); } return null; }
  • 60.
    private ModelAndView getMavIfStateIsNotValidForCheckout( SessionContextcontext) { if( !context.getBasket().hasLineItems() ) { return new ModelAndView(redirectCartView); } if(!context.getBasket().hasInvoiceAddress()) { return new ModelAndView(redirectInvoiceView); } if(!context.getBasket().isValidForCheckout(paymentRule)) { if( !context.getBasket().isFurnitureOk() || !context.getBasket().isPaymentMethodAllowed( context.getPaymentRule()) || !context.getBasket().isPaymentMethodValid()) { return new ModelAndView(redirectInvoiceAndDeliveryView); } return new ModelAndView(redirectInvoiceView); } return null; } !context.get !context.get context.get !context.get
  • 61.
    public CheckOutState(Basket basket,PaymentRule rule) { this.basket = basket; this.rule = rule; } public CheckOutStep nextStep() { if (basket.isEmpty()) return CART; if (basket.isValidForCheckout(rule)) return LAST_CHECK; if ((!basket.hasInvoiceAddress()) || (basket.isFurnitureOk() && basket.isPaymentMethodAllowed(rule) && basket.isPaymentMethodValid())) return INVOICE_ADDRESS; return PAYMENT_AND_DELIVERY; }
  • 62.
    public CheckOutState(Basket basket,PaymentRule rule) { this.basket = basket; this.rule = rule; } public CheckOutStep nextStep() { if (basket.isEmpty()) return CART; if (basket.isValidForCheckout(rule)) return LAST_CHECK; if ((!basket.hasInvoiceAddress()) || (basket.isFurnitureOk() && basket.isPaymentMethodAllowed(rule) && basket.isPaymentMethodValid())) return INVOICE_ADDRESS; return PAYMENT_AND_DELIVERY; } CheckOutState( Basket basket, PaymentRule rule)
  • 63.
    private ModelAndView handleOrderRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); CheckOutState state = new CheckOutState( context.getBasket(), context.getPaymentRule()); if (!state.isValidForCheckOut()) return modelAndViewFor(state.nextStep()); context.disableDesiredDeliveryDate();
  • 64.
    private ModelAndView handleOrderRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); CheckOutState state = new CheckOutState( context.getBasket(), context.getPaymentRule()); if (!state.isValidForCheckOut()) return modelAndViewFor(state.nextStep()); context.disableDesiredDeliveryDate();
  • 65.
    private ModelAndView handleOrderRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); CheckOutState state = new CheckOutState( context.getBasket(), context.getPaymentRule()); if (!state.isValidForCheckOut()) return modelAndViewFor(state.nextStep()); context.disableDesiredDeliveryDate(); state = new CheckOutState( context.getBasket(), context.getPaymentRule());
  • 66.
    protected ModelAndView handleSslRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { if( isNotAuthorizised(request, modelBuilder)){ return handleLogin(request, response, modelBuilder); } Session session = modelBuilder.getSession(); Basket basket = modelBuilder.getBasket(); Customer customer = modelBuilder.getCustomer(); PaymentRule paymentRule = (PaymentRule)paymentRuleComposer.compose(basket, customer); ModelAndView escapeModelAndView = getMavIfStateIsNotValidForCheckout(basket, paymentRule, session); if(escapeModelAndView != null) { return escapeModelAndView; } disableDesiredDeliveryDate(session, basket, modelBuilder);
  • 67.
    private ModelAndView handleOrderRequest(HttpServletRequestrequest, HttpServletResponse response, ModelBuilder modelBuilder) throws Exception { SessionContext context = new SessionContext(modelBuilder, paymentRuleComposer); CheckOutState state = new CheckOutState( context.getBasket(), context.getPaymentRule()); if (!state.isValidForCheckOut()) return modelAndViewFor(state.nextStep()); context.disableDesiredDeliveryDate();
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
    CREDITS von tangaroo von AxelPfaender von binaryCoco von tilaneseven von spiffie von static416 von autowitch von Daveybot von woodleywonderworks von Tim Morgan von Tim Morgan von Tim Morgan von nickwheeleroz von otisarchives1 von *ejk* von cuulongden von Laure Wayaffe von mab @ flickr von Kazze von aesop von SteveMcN von canonsnapper von bies