import java.util.*; public class spproceduresecurityBL extends spproceduresecurityWV implements CPLib.QueryFilterFromApplication { // Variabile che indica se il record è stato variato public boolean m_bUpdated; public int m_nRowStatus; // Variabile che mantiene il vecchio timestamp public String m_cOldCPCCCHK; public java.util.List m_oParameters; protected String m_cPassword; protected String m_cOTP; // Variabile che indica il tipo dell'ultimo // errore, o messaggio da comunicare all'interfaccia, // che si è verificato impostando una variabile di work. // I valori ammessi sono: // - 1 : errore di campo obbligatorio // - 2 : errore di check // - 3 : valore non ammesso nel link // - 4 : richiesta password // - 5 : richiesto otp public int m_nLastError; public String m_cLastMsgError; public String m_cLastWorkVarError; // m_bCalculating==true la Calculate e' in esecuzione public boolean m_bCalculating = false; public static final String i_EntityName = "spproceduresecurity"; public static final String i_EntityType = "dialog"; public static final boolean i_IsSon = false; public boolean m_bSkipCheckOTPSecurity = true; // Variabile di collegamento con il database: passata nel costruttore public CPSql m_Sql; // Variabile di contesto (variabili globali): passata nel costruttore public CPContext m_Ctx; // gestori eventi esterni al business object sono collegati inserendoli nella coppia di strutture dati seguenti // gestori associati a particolari eventi ('Blank') public static volatile HashMap specificEventsHandlers; // gestori associati a tutti gli eventi public static volatile ArrayList allEventsHandlers; // metadati resi disponibili ai gestori di eventi public static String[] m_EntityTables = {""}; // codice secondo sintassi delle business rules per produrre i dati da usare in un ideale documento che li rappresenti public static final String i_StateStructure = "{}"; public static final String i_CompleteStateStructure = "{}"; public static final String i_ItemSequence = ""; public static final com.zucchetti.sitepainter.EntityItem[] i_EditableEntityItems = com.zucchetti.sitepainter.EntityItem.buildEditableItemsForEntity(GetLinkDef(),"",new String[][]{}); // dati usati internamente dai metodi BRxxx di BRCallerImpl private static boolean _involved=true; protected void _setInvolvedInBR(boolean involved) { _involved=involved; } protected boolean _involvedInBR() { return _involved; } public spproceduresecurityBL (CPContext p_ContextObject) { /* Impostazione dell'ambiente globale: il businness object si collega all'oggetto globale (unico per più istanze di una stessa applicazione) per recuperare informazioni sul: 1) nome fisico della tabella di gestione; 2) nome fisico delle tabelle collegate nei link; 3) stringa di connessione. L'azienda è contenuta nel global object. */ // Assegnazione della variabile di collegamento con il database m_Sql = p_ContextObject.GetSql(); m_Ctx = p_ContextObject; } public void Blank() { BlankStatusVariables(); // * --- Area Manuale = BO - Blank Record Init // * --- Fine Area Manuale SaveDependsOn(); NotifyEvent("Blank"); // * --- Area Manuale = BO - Blank Record End // * --- Fine Area Manuale } public boolean IsUpdated() { boolean l_bResult; l_bResult = m_bUpdated; return l_bResult; } public void SaveDependsOn() { } public void NotifyEvent(String p_cEvent) { CPLib.NotifyEvent(p_cEvent,this,m_Ctx,specificEventsHandlers,allEventsHandlers); } // Funzioni di link legate alle variabili ed ai campi. /* Gestione dei metodi per l'impostazione delle variabili di work. I seguenti metodi sono pubblici perchè vengono chiamati dalla UI che ha creato il business object o da batch. */ /* Gestione delle funzioni che rispondono lo stato delle variabili di work. Vengono chiamate dalla UI per valutare la condizione di visibilità e di abilitazione di un control. */ public boolean Set_Password(String p_pwd) { m_cPassword = p_pwd; return true; } public boolean Set_OTP(String p_otp) { m_cOTP = p_otp; return true; } public boolean Calculate() { boolean l_bTmpRes; l_bTmpRes = true; boolean l_bResult; l_bResult = true; m_bCalculating = true; // * --- Area Manuale = BO - Calculate // * --- Fine Area Manuale m_bCalculating = false; return l_bResult; } protected void BlankStatusVariables() { m_bUpdated = false; } public void CalledBatchEnd() { if ( ! (m_bCalculating)) { // Esecuzione dei calcoli Calculate(); } } public final static String[] m_KeyColumns = {}; public static String QueryFilter(CPContext m_Ctx) { String l_cFilter; l_cFilter = CPLib.ApplicationQueryFilter("spproceduresecurity","",m_KeyColumns,m_Ctx); return l_cFilter; } public void SetFromContext(String s) { SetFromContext(s,null); } public void SetFromContext(java.util.Properties p) { SetFromContext("_dummy_",p); } public void SetFromContext(String s,java.util.Properties p) { BlankStatusVariables(); Blank(); if ( ! (CPLib.Empty(s))) { if (CPLib.IsNull(p)) { p = CPLib.GetProperties(s); } boolean l_bFromHyperlink = CPLib.ne("_not_found_",CPLib.GetProperty(p,"m_cParameterSequence","_not_found_")); SetUpdated(); if ( ! (l_bFromHyperlink)) { SaveDependsOn(); } } } public void SetUpdated() { m_bUpdated = true; } public String EntityStatus() { return "D"; } public String LastErrorMessage() { return m_cLastMsgError; } static void GetLinkDef0(Map>> tables) { java.util.regex.Pattern zeroSplit; zeroSplit = java.util.regex.Pattern.compile("\\x00"); Map map; List> items; } public static Map>> GetLinkDef() { java.util.regex.Pattern zeroSplit; zeroSplit = java.util.regex.Pattern.compile("\\x00"); Map>> tables; tables = new HashMap>>(); Map map; List> items; GetLinkDef0(tables); return tables; } // * --- Area Manuale = BL - Methods // * --- Fine Area Manuale }