Package railo.runtime.functions.image

Source Code of railo.runtime.functions.image.ImageGetEXIFMetadata

package railo.runtime.functions.image;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import railo.runtime.PageContext;
import railo.runtime.exp.PageException;
import railo.runtime.img.Image;
import railo.runtime.op.Caster;
import railo.runtime.type.Struct;
import railo.runtime.type.StructImpl;

public class ImageGetEXIFMetadata {

  public static Struct call(PageContext pc, Object name) throws PageException {
    if(name instanceof String) name=pc.getVariable(Caster.toString(name));
    Image img = Image.toImage(name);
    return getData(img);
  }

  public static Struct getData(Image img) throws PageException {
    Struct sct = img.info(),data=new StructImpl();
    Iterator it = sct.entrySet().iterator();
    Map.Entry entry;
    while(it.hasNext()){
      entry=(Entry) it.next();
      if(entry.getValue() instanceof Map)
        fill(data,(Map)entry.getValue());
      else if(entry.getValue() instanceof List)
        fill(data,entry.getKey(),(List)entry.getValue());
      else
        data.put(entry.getKey(),entry.getValue());
    }
   
    return data;
  }

  private static void fill(Struct data, Map map) throws PageException {
    Iterator it = map.entrySet().iterator();
    Map.Entry entry;
    while(it.hasNext()){
      entry=(Entry) it.next();
      if(entry.getValue() instanceof Map)
        fill(data,(Map)entry.getValue());
      else if(entry.getValue() instanceof List)
        fill(data,entry.getKey(),(List)entry.getValue());
      else
        data.put(entry.getKey(),entry.getValue());
    }
  }

  private static void fill(Struct data, Object key, List list) throws PageException {
    data.put(
        key,
        railo.runtime.type.util.ListUtil.listToList(list, ","));
  }
}
TOP

Related Classes of railo.runtime.functions.image.ImageGetEXIFMetadata

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.