58 lines
2.1 KiB
Java
58 lines
2.1 KiB
Java
package org.mercury_im.messenger.data.mapping;
|
|
|
|
import org.jivesoftware.smackx.ikey.record.IkeyRecord;
|
|
import org.jivesoftware.smackx.ikey.record.IkeySubordinateRecord;
|
|
import org.jivesoftware.smackx.ikey.record.OxSubordinateRecord;
|
|
import org.mercury_im.messenger.data.model.IkeyRecordModel;
|
|
import org.mercury_im.messenger.data.model.IkeySubordinateModel;
|
|
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
import lombok.NonNull;
|
|
|
|
public class IkeyRecordMapping extends AbstractMapping<IkeyRecord, IkeyRecordModel> {
|
|
|
|
@Override
|
|
protected IkeyRecord newEntity(@NonNull IkeyRecordModel model) {
|
|
List<IkeySubordinateRecord> subordinateRecords = mapToSubordinateRecords(model.getSubordinates());
|
|
return new IkeyRecord(UUID.randomUUID(), model.getJid(), model.getTimestamp(), model.getSuperordinate(), subordinateRecords);
|
|
}
|
|
|
|
private List<IkeySubordinateRecord> mapToSubordinateRecords(List<IkeySubordinateModel> subordinates) {
|
|
List<IkeySubordinateRecord> records = new ArrayList<>();
|
|
for (IkeySubordinateModel m : subordinates) {
|
|
if (m.getType().equals("urn:xmpp:openpgp:0")) {
|
|
OxSubordinateRecord r = new OxSubordinateRecord();
|
|
r.setOxFingerprint(new OpenPgpV4Fingerprint(m.getFpr()));
|
|
r.setUri(m.getUri());
|
|
records.add(r);
|
|
}
|
|
}
|
|
return records;
|
|
}
|
|
|
|
@Override
|
|
protected IkeyRecordModel newModel(@NonNull IkeyRecord entity) {
|
|
IkeyRecordModel model = new IkeyRecordModel();
|
|
model.setJid(entity.getJid());
|
|
model.setTimestamp(entity.getTimestamp());
|
|
model.setSuperordinate(entity.getSuperordinate());
|
|
model.setFingerprint(new OpenPgpV4Fingerprint(entity.getSuperordinate()));
|
|
|
|
return model;
|
|
}
|
|
|
|
@Override
|
|
protected IkeyRecordModel mapToModel(@NonNull IkeyRecord entity, @NonNull IkeyRecordModel model) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
protected IkeyRecord mapToEntity(@NonNull IkeyRecordModel model, @NonNull IkeyRecord entity) {
|
|
return null;
|
|
}
|
|
}
|