Package org.bladerunnerjs.model

Source Code of org.bladerunnerjs.model.BRJSNodeHelper

package org.bladerunnerjs.model;

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

import javax.naming.InvalidNameException;

import org.bladerunnerjs.model.exception.modelupdate.ModelUpdateException;
import org.bladerunnerjs.model.exception.template.TemplateInstallationException;
import org.bladerunnerjs.utility.StringLengthComparator;
import org.bladerunnerjs.utility.TemplateUtility;


public class BRJSNodeHelper {
  public static void populate(BRJSNode node) throws InvalidNameException, ModelUpdateException {
    populate(node, false);
  }
 
  public static void populate(BRJSNode node, boolean allowNonEmptyDirectories) throws InvalidNameException, ModelUpdateException {
    populate(node, new HashMap<String,String>(), allowNonEmptyDirectories);
  }
 
  public static void populate(BRJSNode node, Map<String, String> overrideTransformations, boolean allowNonEmptyDirectories) throws InvalidNameException, ModelUpdateException {
    if(!allowNonEmptyDirectories) {
      node.create();
    }
   
    try {
      Map<String, String> transformations = getNodeTransformations(node);
      transformations.putAll( overrideTransformations );
     
      TemplateUtility.installTemplate(node, node.getTemplateName(), transformations, allowNonEmptyDirectories);
    }
    catch(TemplateInstallationException e) {
      throw new ModelUpdateException(e);
    }

    node.ready();
  }
 
  public static String getTemplateName(BRJSNode node) {
    return node.getTypeName().toLowerCase();
  }
 
  private static Map<String, String> getNodeTransformations(BRJSNode node) throws ModelUpdateException {
    Map<String, String> transformations = new TreeMap<>(new StringLengthComparator());
   
    do {
      node.addTemplateTransformations(transformations);
      node = (BRJSNode) node.parentNode();
    } while(node != null);
   
    return transformations;
  }
}
TOP

Related Classes of org.bladerunnerjs.model.BRJSNodeHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.