1 21 package oracle.toplink.essentials.internal.expressions; 23 24 import oracle.toplink.essentials.exceptions.*; 25 import oracle.toplink.essentials.expressions.ExpressionOperator; 26 import oracle.toplink.essentials.internal.helper.Helper; 27 import oracle.toplink.essentials.mappings.converters.ObjectTypeConverter; 28 import oracle.toplink.essentials.sessions.Session; 29 import oracle.toplink.essentials.internal.sessions.AbstractSession; 30 31 39 40 public class ExpressionOperatorConverter extends ObjectTypeConverter { 41 45 public Object convertObjectValueToDataValue(Object attributeValue, Session session) { 46 Object fieldValue; 47 if (attributeValue == null) { 48 fieldValue = getAttributeToFieldValues().get(Helper.getNullWrapper()); 49 } else { 50 fieldValue = getAttributeToFieldValues().get(attributeValue); 51 if (fieldValue == null) { 52 if (((ExpressionOperator)attributeValue).getDatabaseStrings() != null) { 54 String databaseString = ((ExpressionOperator)attributeValue).getDatabaseStrings()[0]; 55 fieldValue = databaseString.substring(0, databaseString.length()-1); 56 } else { 57 throw DescriptorException.noAttributeValueConversionToFieldValueProvided(attributeValue, getMapping()); 58 } 59 } 60 } 61 return fieldValue; 62 } 63 64 68 public Object convertDataValueToObjectValue(Object fieldValue, Session session) { 69 Object attributeValue = null; 70 71 if (fieldValue == null) { 72 attributeValue = getFieldToAttributeValues().get(Helper.getNullWrapper()); 73 } else { 74 try { 75 fieldValue = ((AbstractSession)session).getDatasourcePlatform().getConversionManager().convertObject(fieldValue, getFieldClassification()); 76 } catch (ConversionException e) { 77 throw ConversionException.couldNotBeConverted(mapping, mapping.getDescriptor(), e); 78 } 79 80 attributeValue = getFieldToAttributeValues().get(fieldValue); 81 if (attributeValue == null) { 83 attributeValue = ExpressionOperator.simpleFunction(0, (String )fieldValue); 84 } 85 } 86 return attributeValue; 87 } 88 } 89 | Popular Tags |