ModalitaIdentificazioneAzione.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.protocol.engine.constants;

  21. import java.io.Serializable;
  22. import java.util.List;

  23. import org.openspcoop2.core.config.constants.PortaApplicativaAzioneIdentificazione;
  24. import org.openspcoop2.core.config.constants.PortaDelegataAzioneIdentificazione;
  25. import org.openspcoop2.generic_project.beans.IEnumeration;
  26. import org.openspcoop2.generic_project.exception.NotFoundException;

  27. /**    
  28.  * ModalitaIdentificazioneAzione
  29.  *
  30.  * @author Poli Andrea (poli@link.it)
  31.  * @author $Author$
  32.  * @version $Rev$, $Date$
  33.  */
  34. public enum ModalitaIdentificazioneAzione implements IEnumeration , Serializable , Cloneable {

  35.     STATIC ("static"),
  36.     HEADER_BASED ("headerBased"),
  37.     PROTOCOL_BASED ("protocolBased"),
  38.     URL_BASED ("urlBased"),
  39.     CONTENT_BASED ("contentBased"),
  40.     INPUT_BASED ("inputBased"),
  41.     SOAP_ACTION_BASED ("soapActionBased"),
  42.     INTERFACE_BASED ("interfaceBased"),
  43.     DELEGATED_BY ("delegatedBy");
  44.    
  45.    
  46.     /** Value */
  47.     private String value;
  48.     @Override
  49.     public String getValue()
  50.     {
  51.         return this.value;
  52.     }


  53.     /** Official Constructor */
  54.     ModalitaIdentificazioneAzione(String value)
  55.     {
  56.         this.value = value;
  57.     }


  58.    
  59.     @Override
  60.     public String toString(){
  61.         return this.value;
  62.     }
  63.     public boolean equals(String object){
  64.         if(object==null)
  65.             return false;
  66.         return object.equals(this.getValue());  
  67.     }
  68.    
  69.        
  70.    
  71.     /** compatibility with the generated bean (reflection) */
  72.     public boolean equals(Object object,List<String> fieldsNotCheck){
  73.         if( !(object instanceof ModalitaIdentificazioneAzione) ){
  74.             throw new RuntimeException("Wrong type: "+object.getClass().getName());
  75.         }
  76.         return this.equals(((ModalitaIdentificazioneAzione)object));
  77.     }
  78.     public String toString(boolean reportHTML){
  79.         return toString();
  80.     }
  81.     public String toString(boolean reportHTML,List<String> fieldsNotIncluded){
  82.         return toString();
  83.     }
  84.     public String diff(Object object,StringBuilder bf,boolean reportHTML){
  85.         return bf.toString();
  86.     }
  87.     public String diff(Object object,StringBuilder bf,boolean reportHTML,List<String> fieldsNotIncluded){
  88.         return bf.toString();
  89.     }
  90.    
  91.    
  92.     /** Utilities */
  93.    
  94.     public static String[] toArray(){
  95.         String[] res = new String[values().length];
  96.         int i=0;
  97.         for (ModalitaIdentificazioneAzione tmp : values()) {
  98.             res[i]=tmp.getValue();
  99.             i++;
  100.         }
  101.         return res;
  102.     }  
  103.     public static String[] toStringArray(){
  104.         String[] res = new String[values().length];
  105.         int i=0;
  106.         for (ModalitaIdentificazioneAzione tmp : values()) {
  107.             res[i]=tmp.toString();
  108.             i++;
  109.         }
  110.         return res;
  111.     }
  112.     public static String[] toEnumNameArray(){
  113.         String[] res = new String[values().length];
  114.         int i=0;
  115.         for (ModalitaIdentificazioneAzione tmp : values()) {
  116.             res[i]=tmp.name();
  117.             i++;
  118.         }
  119.         return res;
  120.     }
  121.    
  122.     public static boolean contains(String value){
  123.         return toEnumConstant(value)!=null;
  124.     }
  125.    
  126.     public static ModalitaIdentificazioneAzione toEnumConstant(String value){
  127.         try{
  128.             return toEnumConstant(value,false);
  129.         }catch(NotFoundException notFound){
  130.             return null;
  131.         }
  132.     }
  133.     public static ModalitaIdentificazioneAzione toEnumConstant(String value, boolean throwNotFoundException) throws NotFoundException{
  134.         ModalitaIdentificazioneAzione res = null;
  135.         for (ModalitaIdentificazioneAzione tmp : values()) {
  136.             if(tmp.getValue().equals(value)){
  137.                 res = tmp;
  138.                 break;
  139.             }
  140.         }
  141.         if(res==null && throwNotFoundException){
  142.             throw new NotFoundException("Enum with value ["+value+"] not found");
  143.         }
  144.         return res;
  145.     }
  146.    
  147.     public static IEnumeration toEnumConstantFromString(String value){
  148.         try{
  149.             return toEnumConstantFromString(value,false);
  150.         }catch(NotFoundException notFound){
  151.             return null;
  152.         }
  153.     }
  154.     public static IEnumeration toEnumConstantFromString(String value, boolean throwNotFoundException) throws NotFoundException{
  155.         ModalitaIdentificazioneAzione res = null;
  156.         for (ModalitaIdentificazioneAzione tmp : values()) {
  157.             if(tmp.toString().equals(value)){
  158.                 res = tmp;
  159.                 break;
  160.             }
  161.         }
  162.         if(res==null && throwNotFoundException){
  163.             throw new NotFoundException("Enum with value ["+value+"] not found");
  164.         }
  165.         return res;
  166.     }
  167.    
  168.     public static ModalitaIdentificazioneAzione convert(PortaDelegataAzioneIdentificazione identificazione){
  169.         if(identificazione==null){
  170.             return ModalitaIdentificazioneAzione.STATIC;
  171.         }
  172.         switch (identificazione) {
  173.             case STATIC:
  174.                 return ModalitaIdentificazioneAzione.STATIC;
  175.             case HEADER_BASED:
  176.                 return ModalitaIdentificazioneAzione.HEADER_BASED;
  177.             case INPUT_BASED:
  178.                 return ModalitaIdentificazioneAzione.INPUT_BASED;
  179.             case URL_BASED:
  180.                 return ModalitaIdentificazioneAzione.URL_BASED;
  181.             case CONTENT_BASED:
  182.                 return ModalitaIdentificazioneAzione.CONTENT_BASED;
  183.             case SOAP_ACTION_BASED:
  184.                 return ModalitaIdentificazioneAzione.SOAP_ACTION_BASED;
  185.             case INTERFACE_BASED:
  186.                 return ModalitaIdentificazioneAzione.INTERFACE_BASED;          
  187.             case DELEGATED_BY:
  188.                 return ModalitaIdentificazioneAzione.DELEGATED_BY;          
  189.         }
  190.         return ModalitaIdentificazioneAzione.STATIC;
  191.     }
  192.    
  193.     public static ModalitaIdentificazioneAzione convert(PortaApplicativaAzioneIdentificazione identificazione){
  194.         if(identificazione==null){
  195.             return ModalitaIdentificazioneAzione.STATIC;
  196.         }
  197.         switch (identificazione) {
  198.             case STATIC:
  199.                 return ModalitaIdentificazioneAzione.STATIC;
  200.             case PROTOCOL_BASED:
  201.                 return ModalitaIdentificazioneAzione.PROTOCOL_BASED;
  202.             case HEADER_BASED:
  203.                 return ModalitaIdentificazioneAzione.HEADER_BASED;
  204.             case INPUT_BASED:
  205.                 return ModalitaIdentificazioneAzione.INPUT_BASED;
  206.             case URL_BASED:
  207.                 return ModalitaIdentificazioneAzione.URL_BASED;
  208.             case CONTENT_BASED:
  209.                 return ModalitaIdentificazioneAzione.CONTENT_BASED;
  210.             case SOAP_ACTION_BASED:
  211.                 return ModalitaIdentificazioneAzione.SOAP_ACTION_BASED;
  212.             case INTERFACE_BASED:
  213.                 return ModalitaIdentificazioneAzione.INTERFACE_BASED;          
  214.             case DELEGATED_BY:
  215.                 return ModalitaIdentificazioneAzione.DELEGATED_BY;              
  216.         }
  217.         return ModalitaIdentificazioneAzione.STATIC;
  218.     }
  219. }