Package railo.runtime.cfx.customtag

Source Code of railo.runtime.cfx.customtag.CFXTagPoolImpl

package railo.runtime.cfx.customtag;

import java.util.Map;
import java.util.Set;

import railo.commons.collection.MapFactory;
import railo.runtime.cfx.CFXTagException;
import railo.runtime.cfx.CFXTagPool;
import railo.runtime.config.Config;
import railo.runtime.type.util.ListUtil;

import com.allaire.cfx.CustomTag;


/**
*
*/
public final class CFXTagPoolImpl implements CFXTagPool {
 
  Config config;
  Map<String,CFXTagClass> classes;
  Map<String,CFXTagClass> objects=MapFactory.<String,CFXTagClass>getConcurrentMap();
 
  /**
   * constructor of the class
   * @param classes
   */
  public CFXTagPoolImpl(Map<String,CFXTagClass> classes) {
    this.classes=classes;
  }

    @Override
    public Map<String,CFXTagClass> getClasses() {// FUTURE add generic type to interface
        return classes;
    }
   
  @Override
  public synchronized CustomTag getCustomTag(String name) throws CFXTagException {
    name=name.toLowerCase();
   
    Object o=classes.get(name);
    if(o==null) {
      Set<String> set = classes.keySet();
      String names = ListUtil.arrayToList(set.toArray(new String[set.size()]),",");
     
      throw new CFXTagException("there is no Custom Tag (CFX) with name ["+name+"], available Custom Tags are ["+names+"]");
    }
    CFXTagClass ctc=(CFXTagClass) o;
    CustomTag ct = ctc.newInstance();
    //if(!(o instanceof CustomTag))throw new CFXTagException("["+name+"] is not of type ["+CustomTag.class.getName()+"]");
    return ct;
  }
 
  @Override
  public synchronized CFXTagClass getCFXTagClass(String name) throws CFXTagException {
    name=name.toLowerCase();
    CFXTagClass ctc = classes.get(name);
    if(ctc==null) throw new CFXTagException("there is not Custom Tag (CFX) with name ["+name+"]");
    return ctc;
  }

  @Override
  public synchronized void releaseCustomTag(CustomTag ct) {
    //table.put(ct.getClass().toString(),ct);
  }
  public synchronized void releaseTag(Object tag) {
    //table.put(ct.getClass().toString(),ct);
  }
}
TOP

Related Classes of railo.runtime.cfx.customtag.CFXTagPoolImpl

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.