Скрытие элемента enum от сгенерированного JAX-WS WSDL - PullRequest
1 голос
/ 22 октября 2011

У меня есть класс enum, как удар. Я использую JAX-WS для генерации WSDL, но я хочу скрыть перечисление DELETED от клиента. Есть способ сделать это? Я пытался @XmlTransient, но не работает.

@SuppressWarnings("restriction")
@XmlEnum(String.class)
public enum StatusEnum {
    ACTIVE,
    INACTIVE,
    DELETED,
}

1 Ответ

1 голос
/ 22 октября 2011

С моей точки зрения, если вы по каким-то причинам хотите скрыть некоторые записи 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;
}
...