Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jboss.errai.ui.rebind.chain;
  
  import java.net.URL;
  import java.util.HashMap;
  import java.util.Map;
  

Author(s):
edewit@redhat.com
 
 public class TemplateCatalog {
   public static final String ELEMENT = "CURRENT_ELEMENT";
   public static final String FILENAME = "CURRENT_FILE";
   public static final String RESULT = "result";
 
   private final Map<URLContextcontextMap = new HashMap<URLContext>();
   private final Chain chain = new Chain();
 
   public static TemplateCatalog createTemplateCatalog(Command... commands) {
     TemplateCatalog catalog = new TemplateCatalog();
     for (Command command : commands) {
       catalog.chain.addCommand(command);
     }
     return catalog;
   }
 
   public void visitTemplate(URL templateMetaClass widget) {
     final Document document = parseTemplate(template);
     synchronized (this) {
       for (int i = 0; i < document.getChildNodes().getLength(); i++) {
         final Node node = document.getChildNodes().item(i);
         if (node instanceof Element) {
           visitTemplate((Elementnodetemplatewidget);
         }
       }
     }
   }

  
Parses the template into a document.

Parameters:
template the location of the template to parse
 
   protected Document parseTemplate(URL template) {
     InputStream inputStream = null;
     try {
       inputStream = template.openStream();
       return DOMBuilder.jsoup2DOM(Jsoup.parse(inputStream"UTF-8"""));
     }
     catch (Exception e) {
       throw new IllegalArgumentException("could not read template " + templatee);
     }
     finally {
       IOUtils.closeQuietly(inputStream);
     }
   }
 
   private void visitTemplate(Element elementURL templateFileNameMetaClass widget) {
     Context context = .createInitialContext();
     Context existing = .get(templateFileName);
 
     .put(templateFileNamecontext);
     context.put(widget);
     DomVisit.visit(elementnew TemplateDomVisitor(templateFileName));
 
     if (existing != null) {
       // temporary fix for ERRAI-604
       context.putAll(existing);
     }
   }
 
   public Object getResult(URL templateString key) {
     final Context context = .get(template);
     if (context == null) {
       throw new IllegalArgumentException("no context found for template " + template);
     }
     return context.get(key);
   }

  
for testing purposes.

Returns:
the initialized chain
 
   Chain getChain() {
    return ;
  }
  private class TemplateDomVisitor implements DomVisitor {
    private final URL templateFileName;
    private TemplateDomVisitor(URL templateFileName) {
      this. = templateFileName;
    }
    @Override
    public boolean visit(Element element) {
      final Context context = .get();
      context.put(element);
      .execute(context);
      return true;
    }
  }
New to GrepCode? Check out our FAQ X