FileDocCategorySizeDatePackage
BytesValueTag.javaAPI DocExample2846Thu Jun 28 16:14:16 BST 2001com.ora.jsp.tags.sql.value

BytesValueTag

public class BytesValueTag extends ValueTag
This class is a custom action intended to be used in the body of a sqlQuery or an sqlUpdate action element. It adds the specified value to its parent's value list.
author
Hans Bergsten, Gefion software
version
1.0.1

Fields Summary
private byte[]
value
Constructors Summary
Methods Summary
public intdoEndTag()
Gets the value, specified by the value attribute, the stringValue attribute, the param attribute, or the name and property attributes, and adds it to the parent's value list.

        if (stringValue != null) {
            value = toBytes(stringValue);
        }
        else if (param != null) {
            String paramValue = getParameter(param);
            value = toBytes(paramValue);
        }
        else if (name != null) {
            value = getBytes(name, property);
        }
        ValueTagParent parent = 
            (ValueTagParent) findAncestorWithClass(this, ValueTagParent.class);
        if (parent == null) {
            throw new JspException("The sqlBytesValue action is not " +
                "enclosed by a supported action type");
        }
        parent.addValue(new BytesValue(value));
        return EVAL_PAGE;
    
private byte[]getBytes(java.lang.String beanName, java.lang.String propertyName)

        byte[] bytesValue = null;
        Object bean = getBean(beanName);
        Method readMethod = getPropertyReadMethod(bean, propertyName);
        Class returnType = readMethod.getReturnType();
        Object value = getValue(bean, readMethod, propertyName);
        byte[] testObj = new byte[1];
        if (returnType.isArray() && testObj.getClass().isAssignableFrom(returnType)) {
            bytesValue = (byte[]) value;
        }
        else if (String.class.isAssignableFrom(returnType)) {
            bytesValue = toBytes((String) value);
        }
        else {
            throw new JspException("Read method for the " + propertyName +
                " property in the bean named " + beanName + " is not of type " +
                " String or byte[]");
        }
        return bytesValue;
    
public voidrelease()

        value = null;
        super.release();
    
public voidsetValue(byte[] value)
Sets the value property.

        this.value = value;
    
private byte[]toBytes(java.lang.String stringValue)

        return stringValue.getBytes();