从JAX-WS生成的WSDL隐藏枚举元素

时间:2011-10-22 15:34:12

标签: java enums wsdl jax-ws

我有一个类似于打击的枚举类。我正在使用JAX-WS生成WSDL,但我想隐藏客户端的DELETED枚举。有没有办法做到这一点?我试过@XmlTransient,但是没有用。

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

1 个答案:

答案 0 :(得分:1)

从我的观点来看,如果由于某些原因想要隐藏客户端的一些枚举条目,那么实际上有两个枚举,它们本质上是不同的 - “内部”和“客户端”。您可以在枚举代码中轻松地生成另一个:

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;
}