2013-04-10 3 views
0

У меня есть/сеттер метод Getter в классе, как это:генерация WSDL с Струнный Restriction

public class milestone { 
    String milestoneType; 
    public String getMilestoneType() 
     { 
      return milestoneType; 
     } 
    public void setMilestoneType(String milestoneType) 
     {  
      this.milestoneType = milestoneType; 
     } 
    } 

и для этого сгенерированного WSDL с помощью сервера WebLogic, как:

<xs:complexType name="MileStone"> 
    <xs:sequence> 
    <xs:element minOccurs="1" name="MilestoneType" nillable="true" type="xs:string" /> 
    </xs:sequence> 
    </xs:complexType> 

Теперь мне нужно чтобы ограничить значение milestoneType на основе двух значений. Я имею в виду, что это позволит всего 2 значения, необходимо ограничить, кроме двух значений.

Как я могу изменить класс геттера/сеттера для этого? пожалуйста помоги.

Заранее спасибо

ответ

1

Используйте enum, который имеет только два значения, которые вы хотите, чтобы, например, так:

public enum MilestoneType { 
    PRECOMMIT, 
    POSTCOMMIT 
} 

Далее вам необходимо изменить свой Milestone класс использовать этот тип вместо String, например:

public class Milestone { 
    private MilestoneType milestoneType; 
    public MilestoneType getMilestoneType() { 
     return milestoneType; 
    } 
    public void setMilestoneType(MilestoneType milestoneType) {  
     this.milestoneType = milestoneType; 
    } 
} 
+0

Это правильно? – user2248187

+0

public enum milestoneType {PRECOMMIT, POSTCOMMIT} public String getMilestoneType() { \t \t return milestoneType; \t} \t общественного недействительными setMilestoneType (Строка milestoneType) { \t \t this.milestoneType = milestoneType; \t Все еще WSDL не получает chnaged .. – user2248187

+1

Thats, потому что ваше перечисление невидимо с точки зрения wsdl, вам нужно изменить метод, чтобы получить/установить milestoneType, а не строку. –

Смежные вопросы