// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) fieldsfirst lnc // Source File Name: ObjectValue.java package com.icl.saxon.expr; import java.io.PrintStream; // Referenced classes of package com.icl.saxon.expr: // Value, XPathException, Expression public class ObjectValue extends Value { private Object value; public ObjectValue(Object obj) { /* 20*/ value = obj; } public String asString() { /* 29*/ return value != null ? value.toString() : ""; } public double asNumber() { /* 38*/ return value != null ? Value.stringToNumber(value.toString()) : (0.0D / 0.0D); } public boolean asBoolean() { /* 47*/ return value != null ? value.toString().length() > 0 : false; } public int getDataType() { /* 56*/ return 6; } public Object getObject() { /* 64*/ return value; } public boolean equals(ObjectValue objectvalue) { /* 72*/ return value.equals(objectvalue.value); } public int conversionPreference(Class class1) { /* 81*/ if(class1 == Boolean.TYPE) /* 81*/ return 0x7fffffff; /* 82*/ if(class1 == (java.lang.Boolean.class)) /* 82*/ return 0x7fffffff; /* 83*/ if(class1 == Byte.TYPE) /* 83*/ return 4; /* 84*/ if(class1 == (java.lang.Byte.class)) /* 84*/ return 5; /* 85*/ if(class1 == Character.TYPE) /* 85*/ return 2; /* 86*/ if(class1 == (java.lang.Character.class)) /* 86*/ return 3; /* 87*/ if(class1 == Double.TYPE) /* 87*/ return 4; /* 88*/ if(class1 == (java.lang.Double.class)) /* 88*/ return 5; /* 89*/ if(class1 == Float.TYPE) /* 89*/ return 4; /* 90*/ if(class1 == (java.lang.Float.class)) /* 90*/ return 5; /* 91*/ if(class1 == Integer.TYPE) /* 91*/ return 4; /* 92*/ if(class1 == (java.lang.Integer.class)) /* 92*/ return 5; /* 93*/ if(class1 == Long.TYPE) /* 93*/ return 4; /* 94*/ if(class1 == (java.lang.Long.class)) /* 94*/ return 5; /* 95*/ if(class1 == Short.TYPE) /* 95*/ return 4; /* 96*/ if(class1 == (java.lang.Short.class)) /* 96*/ return 5; /* 97*/ if(class1 == (java.lang.String.class)) /* 97*/ return 1; /* 98*/ if(class1 == (java.lang.Object.class)) /* 98*/ return 8; /* 99*/ if(class1 == value.getClass()) /* 99*/ return -1; /* 102*/ return !class1.isAssignableFrom(value.getClass()) ? 0x7fffffff : 0; } public Object convertToJava(Class class1) throws XPathException { /* 112*/ if(value == null) /* 112*/ return null; /* 114*/ if(class1.isAssignableFrom(value.getClass())) /* 115*/ return value; /* 116*/ if(class1 == (com.icl.saxon.expr.Value.class) || class1 == (com.icl.saxon.expr.ObjectValue.class)) /* 117*/ return this; /* 118*/ if(class1 == Boolean.TYPE) /* 119*/ return new Boolean(asBoolean()); /* 120*/ if(class1 == (java.lang.Boolean.class)) /* 121*/ return new Boolean(asBoolean()); /* 122*/ if(class1 == (java.lang.String.class)) /* 123*/ return asString(); /* 124*/ if(class1 == Double.TYPE) /* 125*/ return new Double(asNumber()); /* 126*/ if(class1 == (java.lang.Double.class)) /* 127*/ return new Double(asNumber()); /* 128*/ if(class1 == Float.TYPE) /* 129*/ return new Float(asNumber()); /* 130*/ if(class1 == (java.lang.Float.class)) /* 131*/ return new Float(asNumber()); /* 132*/ if(class1 == Long.TYPE) /* 133*/ return new Long((long)asNumber()); /* 134*/ if(class1 == (java.lang.Long.class)) /* 135*/ return new Long((long)asNumber()); /* 136*/ if(class1 == Integer.TYPE) /* 137*/ return new Integer((int)asNumber()); /* 138*/ if(class1 == (java.lang.Integer.class)) /* 139*/ return new Integer((int)asNumber()); /* 140*/ if(class1 == Short.TYPE) /* 141*/ return new Short((short)(int)asNumber()); /* 142*/ if(class1 == (java.lang.Short.class)) /* 143*/ return new Short((short)(int)asNumber()); /* 144*/ if(class1 == Byte.TYPE) /* 145*/ return new Byte((byte)(int)asNumber()); /* 146*/ if(class1 == (java.lang.Byte.class)) /* 147*/ return new Byte((byte)(int)asNumber()); /* 148*/ if(class1 == Character.TYPE || class1 == (java.lang.Character.class)) { /* 149*/ String s = asString(); /* 150*/ if(s.length() == 1) /* 151*/ return new Character(s.charAt(0)); /* 153*/ else /* 153*/ throw new XPathException("Cannot convert string to Java char unless length is 1"); } else { /* 156*/ throw new XPathException("Conversion of external object to " + class1.getName() + " is not supported"); } } public void display(int i) { /* 166*/ System.err.println(Expression.indent(i) + "** external object **"); } }