/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.xml.xsd.typeprovider; import gw.internal.xml.xsd.typeprovider.simplevaluefactory.XmlSimpleValueFactory; import gw.internal.xml.xsd.typeprovider.validator.XmlSimpleValueValidator; import gw.lang.reflect.IType; import gw.lang.reflect.java.IJavaType; import gw.lang.reflect.java.JavaTypes; import gw.lang.reflect.java.JavaTypes; public abstract class XmlSchemaSimpleValueProvider { public abstract XmlSimpleValueValidator getValidator(); public abstract XmlSimpleValueFactory getSimpleValueFactory(); public abstract boolean hasSimpleContent(); public IType getSimpleTypePropertyGosuType() { IType propType = null; if ( hasSimpleContent() ) { propType = getSimpleValueFactory().getGosuValueType(); } return propType; } public IType getSimpleTypePropertyGosuType( boolean plural ) { IType propType = getSimpleTypePropertyGosuType(); if ( propType != null && plural ) { propType = JavaTypes.LIST().getParameterizedType( propType ); } return propType; } }