package com.books.aspose; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import javax.servlet.ServletRequest; import javax.servlet.jsp.JspException; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * Created by Adeel Ilyas on 7/6/2015. */ /* * @author: Adeel Ilyas Company: Aspose Pty Ltd. */ public class AsposeAPIgetBarcodeUrlTag extends SimpleTagSupport implements AsposeAPIConfiguration { private String symbology; private String billamount; private String varName; private String scopeName; public void setSymbology(String symbology) { this.symbology = symbology; } public void setBillAmount(String billamount) { this.billamount = billamount; } public void setVar(String value) { this.varName = value; } public void setScope(String value) { this.scopeName = value; } public void doTag() throws JspException { try { ScopedContext scopedContext = (this.scopeName == null) ? ScopedContext.PAGE : ScopedContext.getInstance(this.scopeName); Object constantValue = getSymbologyValue(BarcodeTypeConstantClass + "." + this.symbology); constantValue = BarcodeServiceURL +"?billAmount="+ billamount + "&symbology="+constantValue; PageContext pageContext = (PageContext)getJspContext(); String webContext=pageContext.getServletContext().getContextPath(); ServletRequest servletRequest = pageContext.getRequest(); String serviceUrl = servletRequest.getScheme()+"://"+servletRequest.getServerName()+":"+servletRequest.getServerPort()+webContext; getJspContext().setAttribute(this.varName, serviceUrl+constantValue, scopedContext.getValue()); } catch (Exception e) { throw new JspException("Exception setting constant " + this.symbology, e); } } public Object getSymbologyValue(String Symbology) throws IllegalAccessException, InstantiationException, ClassNotFoundException, NoSuchFieldException { Field field; FieldPathParser parser = new FieldPathParser(Symbology); field = Class.forName(parser.getDeclaringClassName()).getField( parser.getFieldName()); if ((!Modifier.isPublic(field.getModifiers())) || (!Modifier.isStatic(field.getModifiers())) || (!Modifier.isFinal(field.getModifiers()))) { throw new IllegalArgumentException(Symbology + " is not a public static final member"); } return field.get(null); } }