С моей точки зрения, если вы по каким-то причинам хотите скрыть некоторые записи enum от клиента, то на самом деле есть два перечисления, которые различны по своей природе - «внутренняя» и «клиентская».Вы можете легко создавать одно из другого прямо в коде перечисления:
public enum StatusEnum {
ACTIVE(ClientStatusEnum.ACTIVE),
INACTIVE(ClientStatusEnum.INACTIVE),
DELETED(ClientStatusEnum.HIDDEN);
private ClientStatusEnum clientStatusEnum;
StatusEnum(ClientStatusEnum cse) {
this.clientStatusEnum = cse;
}
public ClientStatusEnum getClientStatusEnum() {
return clientStatusEnum;
}
}
@XmlEnum(String.class)
public enum ClientStatusEnum {
ACTIVE,
INACTIVE,
HIDDEN;
}