/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.xml.xsd.typeprovider.simplevaluefactory; import gw.internal.xml.XmlDeserializationContext; import gw.internal.xml.XmlSerializationContext; import gw.internal.xml.XmlSimpleValueBase; import gw.lang.reflect.IType; import gw.lang.reflect.java.IJavaType; import gw.lang.reflect.java.JavaTypes; import gw.lang.reflect.java.JavaTypes; import gw.xml.XmlSimpleValue; import java.util.Collections; import java.util.List; import javax.xml.namespace.QName; public class StringSimpleValueFactory extends XmlSimpleValueFactory { @Override public IType getGosuValueType() { return JavaTypes.STRING(); } @Override protected XmlSimpleValue _gosuValueToStorageValue( Object gosuValue ) { return new Value( (String) gosuValue ); } @Override protected XmlSimpleValue _deserialize( XmlDeserializationContext context, String stringValue, boolean isDefault ) { return new Value( stringValue ); // do not trim this value - whitespace should be preserved } private class Value extends XmlSimpleValueBase { private final String _value; public Value( String value ) { _value = value; } @Override public IType getGosuValueType() { return JavaTypes.STRING(); } @Override public Object _getGosuValue() { return _value; } @Override public String _getStringValue( boolean isEnumCode ) { return _value; } @Override public String _serialize( XmlSerializationContext context ) { return _value; } @Override public List<QName> _getQNames() { return Collections.emptyList(); } } }