/** * Translate any non-null value to a string by using the Object toString() method. * This works in any case where the Java string representation of an object is the * same as the expected XML Schema output form. * * @param value Value returned from a mapping class * @return String content to put in XML output * @throws TransformationException * @since 5.0 */ static String defaultTranslation(Object value) throws TransformationException { return (String)DataTypeManager.transformValue(value, DataTypeManager.DefaultDataClasses.STRING); }
public static Object transformValue(Object value, Class<?> targetClass) throws TransformationException { if (value == null) { return value; } return transformValue(value, value.getClass(), targetClass); }
public static Object transformValue(Object value, Class<?> targetClass) throws TransformationException { if (value == null) { return value; } return transformValue(value, value.getClass(), targetClass); }
Object convertFromExcelType(final boolean value, final Class<?> expectedType) throws TranslatorException { if (expectedType.isAssignableFrom(Boolean.class)) { return value; } try { return DataTypeManager.transformValue(value, expectedType); } catch (TransformationException e) { throw new TranslatorException(e); } }
public static ParseInfo createParseInfo(RequestMessage requestMsg, SessionMetadata sessionMetadata) { ParseInfo parseInfo = new ParseInfo(); parseInfo.ansiQuotedIdentifiers = requestMsg.isAnsiQuotedIdentifiers(); Object value = sessionMetadata.getSessionVariables().get("backslashDefaultMatchEscape"); //$NON-NLS-1$ try { if (value != null && Boolean.TRUE.equals(DataTypeManager.transformValue(value, DataTypeManager.DefaultDataClasses.BOOLEAN))) { parseInfo.setBackslashDefaultMatchEscape(true); } } catch (TransformationException e) { } return parseInfo; }
public static ParseInfo createParseInfo(RequestMessage requestMsg, SessionMetadata sessionMetadata) { ParseInfo parseInfo = new ParseInfo(); parseInfo.ansiQuotedIdentifiers = requestMsg.isAnsiQuotedIdentifiers(); Object value = sessionMetadata.getSessionVariables().get("backslashDefaultMatchEscape"); //$NON-NLS-1$ try { if (value != null && Boolean.TRUE.equals(DataTypeManager.transformValue(value, DataTypeManager.DefaultDataClasses.BOOLEAN))) { parseInfo.setBackslashDefaultMatchEscape(true); } } catch (TransformationException e) { } return parseInfo; }
public static ParseInfo createParseInfo(RequestMessage requestMsg, SessionMetadata sessionMetadata) { ParseInfo parseInfo = new ParseInfo(); parseInfo.ansiQuotedIdentifiers = requestMsg.isAnsiQuotedIdentifiers(); Object value = sessionMetadata.getSessionVariables().get("backslashDefaultMatchEscape"); //$NON-NLS-1$ try { if (value != null && Boolean.TRUE.equals(DataTypeManager.transformValue(value, DataTypeManager.DefaultDataClasses.BOOLEAN))) { parseInfo.setBackslashDefaultMatchEscape(true); } } catch (TransformationException e) { } return parseInfo; }
@Test public void testObjectTypeArray() throws Exception { Object value = new Object[] {"a", "b"}; DataTypeManager.transformValue(value, value.getClass(), String[].class); }
public RecursiveTableProcessor(QueryProcessor queryProcessor, List<ElementSymbol> columns, ProcessorPlan processorPlan, boolean all) throws TransformationException { super(queryProcessor, columns); this.recursive = processorPlan; this.all = all; if (queryProcessor.getContext() != null) { Object value = queryProcessor.getContext().getSessionVariable(TEIID_MAX_RECURSION); if (value != null) { value = DataTypeManager.convertToRuntimeType(value, false); DataTypeManager.transformValue(value, value.getClass(), DataTypeManager.DefaultDataClasses.INTEGER); if (value instanceof Number) { maxIterations = ((Number)value).intValue(); } } } }
@Test(expected=TransformationException.class) public void testStringToXML() throws Exception { DataTypeManager.transformValue("hello", DataTypeManager.DefaultDataClasses.XML); //$NON-NLS-1$ }
public static Object convert(CommandContext context, Object src, String type) throws FunctionExecutionException { try { if (context == null || context.getMetadata() == null) { return DataTypeManager.transformValue(src, DataTypeManager.getDataTypeClass(type)); } return DataTypeManager.transformValue(src, context.getMetadata().getDataTypeClass(type)); } catch(TransformationException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } catch (QueryMetadataException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } }
public static Object convert(CommandContext context, Object src, String type) throws FunctionExecutionException { try { if (context == null || context.getMetadata() == null) { return DataTypeManager.transformValue(src, DataTypeManager.getDataTypeClass(type)); } return DataTypeManager.transformValue(src, context.getMetadata().getDataTypeClass(type)); } catch(TransformationException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } catch (QueryMetadataException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } }
public static Object convert(CommandContext context, Object src, String type) throws FunctionExecutionException { try { if (context == null || context.getMetadata() == null) { return DataTypeManager.transformValue(src, DataTypeManager.getDataTypeClass(type)); } return DataTypeManager.transformValue(src, context.getMetadata().getDataTypeClass(type)); } catch(TransformationException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } catch (QueryMetadataException e) { throw new FunctionExecutionException(QueryPlugin.Event.TEIID30405, e, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30405, new Object[]{src, DataTypeManager.getDataTypeName(src.getClass()), type})); } }
@Test public void testObjectArrayToObject() throws Exception { Object[] value = {1,2}; assertArrayEquals(value, (Object[])DataTypeManager.transformValue(value, value.getClass(), DataTypeManager.DefaultDataClasses.OBJECT)); }
@Test public void testPrimitiveArrayConversion() throws Exception { Object val = DataTypeManager.transformValue(new long[] {1}, DataTypeManager.DefaultDataClasses.OBJECT, Long[].class); assertEquals(new ArrayImpl(new Long[]{Long.valueOf(1)}), val); }
@Test public void testGeographyToGeometry() throws Exception { assertTrue(DataTypeManager.transformValue(new GeographyType(new byte[0]), DataTypeManager.DefaultDataClasses.GEOMETRY) instanceof GeometryType); //$NON-NLS-1$ }
@Test public void testObjectToString() throws Exception { assertEquals("hello", DataTypeManager.transformValue(new Foo(), DataTypeManager.DefaultDataClasses.STRING)); //$NON-NLS-1$ }
@Test public void testClobConcat() throws Exception { CommandContext c = new CommandContext(); c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager()); ClobType result = (ClobType)helpInvokeMethod("concat", new Class<?>[] {DataTypeManager.DefaultDataClasses.CLOB, DataTypeManager.DefaultDataClasses.CLOB}, new Object[] {DataTypeManager.transformValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", DataTypeManager.DefaultDataClasses.CLOB), DataTypeManager.transformValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:template match=\"@*|node()\"><xsl:copy><xsl:apply-templates select=\"@*|node()\"/></xsl:copy></xsl:template><xsl:template match=\"Quantity\"/></xsl:stylesheet>", DataTypeManager.DefaultDataClasses.CLOB)}, c); String xml = ObjectConverterUtil.convertToString(result.getCharacterStream()); assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\">" + "<Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs><?xml version=\"1.0\" encoding=\"UTF-8\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">" + "<xsl:template match=\"@*|node()\"><xsl:copy><xsl:apply-templates select=\"@*|node()\"/></xsl:copy></xsl:template><xsl:template match=\"Quantity\"/></xsl:stylesheet>", xml); }
@Test public void testInvokeXslTransform() throws Exception { CommandContext c = new CommandContext(); c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager()); ClobType result = (ClobType)helpInvokeMethod("xsltransform", new Class<?>[] {DataTypeManager.DefaultDataClasses.XML, DataTypeManager.DefaultDataClasses.XML}, new Object[] {DataTypeManager.transformValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", DataTypeManager.DefaultDataClasses.XML), DataTypeManager.transformValue("<?xml version=\"1.0\" encoding=\"UTF-8\"?><xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"><xsl:template match=\"@*|node()\"><xsl:copy><xsl:apply-templates select=\"@*|node()\"/></xsl:copy></xsl:template><xsl:template match=\"Quantity\"/></xsl:stylesheet>", DataTypeManager.DefaultDataClasses.XML)}, c); String xml = ObjectConverterUtil.convertToString(result.getCharacterStream()); assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name></Item></Items></Catalog></Catalogs>", xml); }
@Test public void testInvokeXmlConcat() throws Exception { CommandContext c = new CommandContext(); c.setBufferManager(BufferManagerFactory.getStandaloneBufferManager()); XMLType result = (XMLType)helpInvokeMethod("xmlconcat", new Class<?>[] {DataTypeManager.DefaultDataClasses.XML, DataTypeManager.DefaultDataClasses.XML}, new Object[] {DataTypeManager.transformValue("<bar/>", DataTypeManager.DefaultDataClasses.XML), DataTypeManager.transformValue("<Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", DataTypeManager.DefaultDataClasses.XML)}, c); String xml = ObjectConverterUtil.convertToString(result.getCharacterStream()); assertEquals("<bar/><Catalogs xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Catalog><Items><Item ItemID=\"001\"><Name>Lamp</Name><Quantity>5</Quantity></Item></Items></Catalog></Catalogs>", xml); }