package org.opengroupware.jope.samples.HelloJo;

import org.opengroupware.jope.appserver.core.WOApplication;
import org.opengroupware.jope.appserver.core.WOContext;
import org.opengroupware.jope.appserver.core.WORedirect;
import org.opengroupware.jope.appserver.core.WORequest;
import org.opengroupware.jope.appserver.core.WOResponse;
import org.opengroupware.jope.appserver.publisher.IJoContext;
import org.opengroupware.jope.jetty.WOJettyRunner;

public class HelloJo extends WOApplication {

  @Override
  public WOResponse redirectToApplicationEntry(WOContext _ctx) {
    WORequest  rq    = _ctx.request();
    String     rURI  = "/" + rq.applicationName() +
                       "/" + LanguageSelector.bestLanguageCodeForRequest(rq) +
                       "/pojo/view";
    return new WORedirect(rURI, _ctx).generateResponse();
  }

  @Override
  public Object lookupName(String _name, IJoContext _ctx, boolean _acquire) {
    Object result = super.lookupName(_name, _ctx, _acquire);
    if (result != null) return result;
    if (_name.equals("pojo"))
      return new PoJo();
    /* _name is a language code, process it */
    return LanguageSelector.singleton.lookupName(_name, _ctx, _acquire);
  }

  /**
   * A main method to start the application inside Jetty. We don't necessarily
   * need it, we could also deploy the application to a container.
   */
  public static void main(String[] args) {
    new WOJettyRunner(HelloJo.class, args).run();
  }

}
