/** @param teiidVersion */ public Batch1Serializer(ITeiidServerVersion teiidVersion) { super(teiidVersion); serializers.put( DataTypeManagerService.DefaultDataTypes.BIG_DECIMAL.getId(), new BigDecimalColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.BIG_INTEGER.getId(), new BigIntegerColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.BOOLEAN.getId(), new BooleanColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.BYTE.getId(), new ByteColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.CHAR.getId(), new CharColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.DATE.getId(), new DateColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.DOUBLE.getId(), new DoubleColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.FLOAT.getId(), new FloatColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.INTEGER.getId(), new IntColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.LONG.getId(), new LongColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.SHORT.getId(), new ShortColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.TIME.getId(), new TimeColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.TIMESTAMP.getId(), new TimestampColumnSerializer()); serializers.put( DataTypeManagerService.DefaultDataTypes.VARBINARY.getId(), new BinaryColumnSerializer()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.DATE.getId(), new DateColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.TIME.getId(), new TimeColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.STRING.getId(), new StringColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.CLOB.getId(), new ClobColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.BLOB.getId(), new BlobColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.XML.getId(), new XmlColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.NULL.getId(), new NullColumnSerializer1()); version1serializers.put( DataTypeManagerService.DefaultDataTypes.OBJECT.getId(), new ObjectColumnSerializer1(DataTypeManagerService.DefaultDataTypes.VARBINARY.ordinal())); version1serializers.put( DataTypeManagerService.DefaultDataTypes.VARBINARY.getId(), new BinaryColumnSerializer1()); }
@Test public void testCreateTempTable1() { Create create = getFactory().newCreate(); create.setTable(getFactory().newGroupSymbol("tempTable")); // $NON-NLS-1$ List<ElementSymbol> columns = new ArrayList<ElementSymbol>(); ElementSymbol column = getFactory().newElementSymbol("c1"); // $NON-NLS-1$ column.setType(DataTypeManagerService.DefaultDataTypes.BOOLEAN.getTypeClass()); columns.add(column); column = getFactory().newElementSymbol("c2"); // $NON-NLS-1$ column.setType(DataTypeManagerService.DefaultDataTypes.BYTE.getTypeClass()); columns.add(column); create.setElementSymbolsAsColumns(columns); helpTest( "Create local TEMPORARY table tempTable (c1 boolean, c2 byte)", "CREATE LOCAL TEMPORARY TABLE tempTable (c1 boolean, c2 byte)", create); //$NON-NLS-1$ //$NON-NLS-2$ }
@Override protected Object readObject(ObjectInput in) throws IOException, ClassNotFoundException { int code = in.readByte(); if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) { if (in.readByte() == (byte) 0) { return Boolean.FALSE; } return Boolean.TRUE; } if (code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) { DefaultDataTypes dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code); ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1); return s.readObject(in); } return super.readObject(in); }
@Override protected void writeObject(ObjectOutput out, Object obj) throws IOException { DefaultDataTypes dataType = getDataTypeManager().getDataType(obj.getClass()); int code = dataType.ordinal(); out.writeByte((byte) code); if (code == DataTypeManagerService.DefaultDataTypes.BOOLEAN.ordinal()) { if (Boolean.TRUE.equals(obj)) { out.write((byte) 1); } else { out.write((byte) 0); } } else if (code <= highestKnownCode && code != DataTypeManagerService.DefaultDataTypes.OBJECT.ordinal()) { dataType = DataTypeManagerService.DefaultDataTypes.valueOf(getTeiidVersion(), code); ColumnSerializer s = getSerializer(dataType.getId(), (byte) 1); s.writeObject(out, obj); } else { super.writeObject(out, obj); } }