135 lines
3.5 KiB
Java
135 lines
3.5 KiB
Java
package org.mercury_im.messenger.view.entity;
|
|
|
|
import org.mercury_im.messenger.entity.contact.SubscriptionMode;
|
|
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 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,
|
|
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 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 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(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);
|
|
}
|
|
}
|
|
}
|