@Override protected Class<?> resolveClass(final ObjectStreamClass desc) throws IOException, ClassNotFoundException { final String className = desc.getName(); if (className.startsWith("org.eobjects.metamodel") || className.startsWith("[Lorg.eobjects.metamodel")) { return super.resolveClass(desc); } return resolveClass(className, true); }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object primaryColumns = getFields.get("_primaryColumns", null); Object foreignColumns = getFields.get("_foreignColumns", null); if (primaryColumns instanceof Column[] && foreignColumns instanceof Column[]) { primaryColumns = Arrays.<Column> asList((Column[]) primaryColumns); foreignColumns = Arrays.<Column> asList((Column[]) foreignColumns); } LegacyDeserializationObjectInputStream.setField(MutableRelationship.class, this, "_primaryColumns", primaryColumns); LegacyDeserializationObjectInputStream.setField(MutableRelationship.class, this, "_foreignColumns", foreignColumns); } }
@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass resultClassDescriptor = super.readClassDescriptor(); final String originalClassName = resultClassDescriptor.getName(); if (renamedClasses.containsKey(originalClassName)) { final String className = renamedClasses.get(originalClassName); logger.info("Class '{}' was encountered. Returning class descriptor of new class name: '{}'", originalClassName, className); return getClassDescriptor(className, resultClassDescriptor); } else { final Set<Entry<String, String>> entrySet = renamedPackages.entrySet(); for (Entry<String, String> entry : entrySet) { final String legacyPackage = entry.getKey(); if (originalClassName.startsWith(legacyPackage)) { final String className = originalClassName.replaceFirst(legacyPackage, entry.getValue()); logger.info("Class '{}' was encountered. Returning class descriptor of new class name: '{}'", originalClassName, className); return getClassDescriptor(className, resultClassDescriptor); } } } if (INTERFACES_WITH_SERIAL_ID_CHANGES.contains(originalClassName)) { final ObjectStreamClass newClassDescriptor = ObjectStreamClass.lookup(resolveClass(originalClassName)); return newClassDescriptor; } return resultClassDescriptor; }
@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass objectStreamClass = super.readClassDescriptor(); final String className = objectStreamClass.getName(); switch (className) { case OLD_CLASS_NAME_COLUMN_TYPE: final ObjectStreamClass legacyColumnTypeResult = ObjectStreamClass.lookup(LegacyColumnType.class); return legacyColumnTypeResult; case CLASS_NAME_OPERATOR_TYPE: if (isEnumExpected(objectStreamClass)) { final ObjectStreamClass legacyOperatorTypeResult = ObjectStreamClass.lookup(LegacyOperatorType.class); return legacyOperatorTypeResult; } break; case CLASS_NAME_FUNCTION_TYPE: if (isEnumExpected(objectStreamClass)) { final ObjectStreamClass legacyOperatorTypeResult = ObjectStreamClass.lookup(LegacyFunctionType.class); return legacyOperatorTypeResult; } break; } return objectStreamClass; }
@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass resultClassDescriptor = super.readClassDescriptor(); final String originalClassName = resultClassDescriptor.getName(); final String className = getClassNameRenamed(originalClassName); if (className != originalClassName) { return getClassDescriptor(className, false, resultClassDescriptor); } if (INTERFACES_WITH_SERIAL_ID_CHANGES.contains(originalClassName)) { return ObjectStreamClass.lookup(resolveClass(originalClassName, false)); } return resultClassDescriptor; }
@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass objectStreamClass = super.readClassDescriptor(); final String className = objectStreamClass.getName(); switch (className) { case OLD_CLASS_NAME_COLUMN_TYPE: final ObjectStreamClass legacyColumnTypeResult = ObjectStreamClass.lookup(LegacyColumnType.class); return legacyColumnTypeResult; case CLASS_NAME_OPERATOR_TYPE: if (isEnumExpected(objectStreamClass)) { final ObjectStreamClass legacyOperatorTypeResult = ObjectStreamClass.lookup(LegacyOperatorType.class); return legacyOperatorTypeResult; } break; case CLASS_NAME_FUNCTION_TYPE: if (isEnumExpected(objectStreamClass)) { final ObjectStreamClass legacyOperatorTypeResult = ObjectStreamClass.lookup(LegacyFunctionType.class); return legacyOperatorTypeResult; } break; } return objectStreamClass; }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object columns = getFields.get("_columns", null); if (columns instanceof Column[]) { columns = Arrays.<Column> asList((Column[]) columns); } final Object schema = getFields.get("_schema", null); final Object tableName = getFields.get("_tableName", null); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_columns", columns); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_schema", schema); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_tableName", tableName); } }
@Override protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { final String className = desc.getName(); if (className.startsWith("org.eobjects.metamodel") || className.startsWith("[Lorg.eobjects.metamodel")) { return super.resolveClass(desc); } return resolveClass(className); }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object columns = getFields.get("_columns", null); if (columns instanceof Column[]) { columns = Arrays.<Column> asList((Column[]) columns); } final Object schema = getFields.get("_schema", null); final Object tableName = getFields.get("_tableName", null); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_columns", columns); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_schema", schema); LegacyDeserializationObjectInputStream.setField(CsvTable.class, this, "_tableName", tableName); } }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object primaryColumns = getFields.get("primaryColumns", null); Object foreignColumns = getFields.get("foreignColumns", null); if (primaryColumns instanceof Column[] && foreignColumns instanceof Column[]) { primaryColumns = Arrays.<Column> asList((Column[]) primaryColumns); foreignColumns = Arrays.<Column> asList((Column[]) foreignColumns); } LegacyDeserializationObjectInputStream.setField(ImmutableRelationship.class, this, "primaryColumns", primaryColumns); LegacyDeserializationObjectInputStream.setField(ImmutableRelationship.class, this, "foreignColumns", foreignColumns); } }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object primaryColumns = getFields.get("primaryColumns", null); Object foreignColumns = getFields.get("foreignColumns", null); if (primaryColumns instanceof Column[] && foreignColumns instanceof Column[]) { primaryColumns = Arrays.<Column> asList((Column[]) primaryColumns); foreignColumns = Arrays.<Column> asList((Column[]) foreignColumns); } LegacyDeserializationObjectInputStream.setField(ImmutableRelationship.class, this, "primaryColumns", primaryColumns); LegacyDeserializationObjectInputStream.setField(ImmutableRelationship.class, this, "foreignColumns", foreignColumns); } }
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField getFields = stream.readFields(); Object primaryColumns = getFields.get("_primaryColumns", null); Object foreignColumns = getFields.get("_foreignColumns", null); if (primaryColumns instanceof Column[] && foreignColumns instanceof Column[]) { primaryColumns = Arrays.<Column> asList((Column[]) primaryColumns); foreignColumns = Arrays.<Column> asList((Column[]) foreignColumns); } LegacyDeserializationObjectInputStream.setField(MutableRelationship.class, this, "_primaryColumns", primaryColumns); LegacyDeserializationObjectInputStream.setField(MutableRelationship.class, this, "_foreignColumns", foreignColumns); } }