mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-16 00:24:51 +02:00
135 lines
3.5 KiB
Java
135 lines
3.5 KiB
Java
package org.mercury_im.messenger.view.entity;
|
|
|
|
import org.mercury_im.messenger.core.entity.contact.Contact;
|
|
import org.mercury_im.messenger.view.entity.definition.InterlocutorViewEntity;
|
|
|
|
public class ViewInterlocutor<A> implements InterlocutorViewEntity {
|
|
|
|
private final String name;
|
|
private final String address;
|
|
private final String accountAddress;
|
|
private final Contact.SubscriptionMode subscriptionMode;
|
|
private final String lastActivity;
|
|
private final boolean isTyping;
|
|
private final String status;
|
|
private final A avatar;
|
|
|
|
private ViewInterlocutor(String name,
|
|
String address,
|
|
String accountAddress,
|
|
Contact.SubscriptionMode subscriptionMode,
|
|
String lastActivity,
|
|
boolean isTyping,
|
|
String status,
|
|
A avatar) {
|
|
this.name = name;
|
|
this.address = address;
|
|
this.accountAddress = accountAddress;
|
|
this.subscriptionMode = subscriptionMode;
|
|
this.lastActivity = lastActivity;
|
|
this.isTyping = isTyping;
|
|
this.status = status;
|
|
this.avatar = avatar;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public String getAddress() {
|
|
return address;
|
|
}
|
|
|
|
@Override
|
|
public String getAccountAddress() {
|
|
return accountAddress;
|
|
}
|
|
|
|
@Override
|
|
public Contact.SubscriptionMode getSubscriptionMode() {
|
|
return subscriptionMode;
|
|
}
|
|
|
|
@Override
|
|
public String getLastActivity() {
|
|
return lastActivity;
|
|
}
|
|
|
|
@Override
|
|
public boolean isTyping() {
|
|
return isTyping;
|
|
}
|
|
|
|
@Override
|
|
public String getStatus() {
|
|
return status;
|
|
}
|
|
|
|
public A getAvatar() {
|
|
return avatar;
|
|
}
|
|
|
|
public static <A> Builder<A> builder() {
|
|
return new Builder<>();
|
|
}
|
|
|
|
private static class Builder<A> {
|
|
|
|
private String name;
|
|
private String address;
|
|
private String accountAddress;
|
|
private Contact.SubscriptionMode subscriptionMode;
|
|
private String lastActivity;
|
|
private boolean isTyping;
|
|
private String status;
|
|
private A avatar;
|
|
|
|
public Builder setName(String name) {
|
|
this.name = name;
|
|
return this;
|
|
}
|
|
|
|
public Builder setAddress(String address) {
|
|
this.address = address;
|
|
return this;
|
|
}
|
|
|
|
public Builder setAccountAddress(String accountAddress) {
|
|
this.accountAddress = accountAddress;
|
|
return this;
|
|
}
|
|
|
|
public Builder setSubscriptionMode(Contact.SubscriptionMode subscriptionMode) {
|
|
this.subscriptionMode = subscriptionMode;
|
|
return this;
|
|
}
|
|
|
|
public Builder setLastActivity(String lastActivity) {
|
|
this.lastActivity = lastActivity;
|
|
return this;
|
|
}
|
|
|
|
public Builder setIsTyping(boolean isTyping) {
|
|
this.isTyping = isTyping;
|
|
return this;
|
|
}
|
|
|
|
public Builder setStatus(String status) {
|
|
this.status = status;
|
|
return this;
|
|
}
|
|
|
|
public Builder setAvatar(A avatar) {
|
|
this.avatar = avatar;
|
|
return this;
|
|
}
|
|
|
|
public ViewInterlocutor<A> build() {
|
|
return new ViewInterlocutor<>(name, address, accountAddress, subscriptionMode,
|
|
lastActivity, isTyping, status, avatar);
|
|
}
|
|
}
|
|
}
|