mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
36 lines
1.2 KiB
Java
36 lines
1.2 KiB
Java
package com.sap.sse.security.test;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.ObjectInputStream;
|
|
import java.io.ObjectOutputStream;
|
|
import java.util.Base64;
|
|
|
|
import com.sap.sse.security.PreferenceConverter;
|
|
|
|
public class JavaIoSerializablePreferenceConverter<T> implements PreferenceConverter<T> {
|
|
@Override
|
|
public String toString(T preference) {
|
|
try {
|
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
ObjectOutputStream oos = new ObjectOutputStream(stream);
|
|
oos.writeObject(preference);
|
|
oos.flush();
|
|
return Base64.getEncoder().encodeToString(stream.toByteArray());
|
|
} catch (IOException e) {
|
|
throw new IllegalStateException(e);
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public T toPreference(String stringPreference) {
|
|
try {
|
|
return (T) new ObjectInputStream(new ByteArrayInputStream(Base64.getDecoder().decode(stringPreference)))
|
|
.readObject();
|
|
} catch (Exception e) {
|
|
throw new IllegalStateException(e);
|
|
}
|
|
}
|
|
} |