@Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
     throws IOException, ServletException {
   HttpServletRequest httpServletRequest = (HttpServletRequest) request;
   try {
     filterChain.doFilter(request, response);
   } catch (final Throwable t) {
     for (final CustomHandler customHandler : customHandlers) {
       if (customHandler.isCustomizedFor(t)) {
         customHandler.handle(httpServletRequest, response, t);
         return;
       }
     }
     throw t;
   }
 }
Esempio n. 2
0
  @Override
  public void create(Document doc, String type) {
    // there is some duplicate code between decoders that should be factored out.
    String path =
        doc.getElementsByTagName(type)
            .item(0)
            .getAttributes()
            .getNamedItem(SOURCE_TAG)
            .getTextContent();
    String subtype = type.substring(0, type.length() - 1);
    NodeList nodeLst = doc.getElementsByTagName(subtype);
    myCustomHandler.create(doc, subtype);
    for (int i = 0; i < nodeLst.getLength(); i++) {
      Element nElement = (Element) nodeLst.item(i);
      String name = getElement(nElement, NAME_TAG);
      String img = getElement(nElement, IMAGE_TAG);
      String sound = getElement(nElement, SOUND_TAG);
      int health = Integer.parseInt(getElement(nElement, HEALTH_TAG));
      double buildTime = Double.parseDouble(getElement(nElement, TIME_TAG));
      Building building =
          (Building)
              ReflectionHelper.makeInstance(
                  path,
                  new Pixmap(
                      ResourceManager.getInstance()
                          .<BufferedImage>getFile(img, BufferedImage.class)),
                  new Sound(sound),
                  health,
                  buildTime);

      building.setInfo(getInformation(name, nElement));

      myFactory.put(name, building);

      // Load Production Dependencies now
      String[] nameCanProduce = getElement(nElement, PRODUCE_TAG).split("\\s+");
      if (nameCanProduce[0] != "") {
        myFactory.putProductionDependency(name, nameCanProduce);
      }

      // Load Strategy Dependencies now
      String[] strategies = new String[5];
      strategies[0] = CANNOT_ATTACK;
      strategies[1] = getElement(nElement, OCCUPY_TAG);
      strategies[2] = CANNOT_GATHER;
      strategies[3] = getElement(nElement, UPGRADE_TAG);
      strategies[4] = getElement(nElement, UPGRADE_TREE_NAME_TAG);

      // Load Weapon Dependency
      String[] weapons = getElement(nElement, MYWEAPONS_TAG).split("\\s+");
      if (weapons[0] != "") {
        myFactory.putWeaponDependency(name, weapons);
        strategies[0] = CAN_ATTACK;
      }

      myFactory.putStrategyDependency(name, strategies);
    }
  }