/** * 将旧的 serializedObject converter为 新的 serializedObject,如果expectedContentType 和旧的一致,那么直接返回 只是一个确认操作 * * @param serializedObject The object to convert * @param expectedContentType The content type of the SerializedObject to return * @return a SerializedObject containing data in the expected content type */ @SuppressWarnings("unchecked") protected <S, T> SerializedObject<T> ensureCorrectContentType( SerializedObject<S> serializedObject, Class<T> expectedContentType) { if (!expectedContentType.isAssignableFrom(serializedObject.getContentType())) { ContentTypeConverter<S, T> converter = converterFactory.getConverter(serializedObject.getContentType(), expectedContentType); return converter.convert(serializedObject); } return (SerializedObject<T>) serializedObject; }
@SuppressWarnings("unchecked") @Override public <R> SerializedObject<R> serializeMetaData( Serializer serializer, Class<R> expectedRepresentation) { if (serializer.equals(serializedMetaData.getSerializer())) { final SerializedObject serializedObject = serializedMetaData.getSerializedObject(); return CONVERTER_FACTORY .getConverter(serializedObject.getContentType(), expectedRepresentation) .convert(serializedObject); } return serializer.serialize(serializedMetaData.getObject(), expectedRepresentation); }