]> git.mxchange.org Git - jfinancials-war.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Tue, 20 Mar 2018 23:49:37 +0000 (00:49 +0100)
committerRoland Häder <roland@mxchange.org>
Tue, 20 Mar 2018 23:55:35 +0000 (00:55 +0100)
- added ServletContextListener implementation for (later) pre-initialize JS107
  cache before any page is served
- added validators for basic company data, headquarter data and branch office's
  email addresses
- rewrote converters which have allowEmptyValue flag to handle it correctly
  (need that validators.jsf.taglib.xml for this to work)
- renamed company name validator as this is for basic company data ... ;-)
- updated/changed copyright year to Free Software Foundation

Signed-off-by: Roland Häder <roland@mxchange.org>
35 files changed:
src/java/org/mxchange/jfinancials/converter/business/basicdata/FinancialsBasicCompanyDataConverter.java
src/java/org/mxchange/jfinancials/converter/business/branchoffice/FinancialsBranchOfficeConverter.java
src/java/org/mxchange/jfinancials/converter/business/department/FinancialsDepartmentConverter.java
src/java/org/mxchange/jfinancials/converter/business/employee/FinancialsEmployeeConverter.java
src/java/org/mxchange/jfinancials/converter/business/headquarter/FinancialsHeadquarterConverter.java
src/java/org/mxchange/jfinancials/converter/business/opening_time/FinancialsCompanyOpeningTimeConverter.java
src/java/org/mxchange/jfinancials/converter/contact/FinancialsContactConverter.java
src/java/org/mxchange/jfinancials/converter/country/FinancialsCountryConverter.java
src/java/org/mxchange/jfinancials/converter/dayofweek/FinancialsDayOfTheWeekConverter.java
src/java/org/mxchange/jfinancials/converter/fax/FinancialsFaxNumberConverter.java
src/java/org/mxchange/jfinancials/converter/landline/FinancialsLandLineNumberConverter.java
src/java/org/mxchange/jfinancials/converter/mobile/FinancialsMobileNumberConverter.java
src/java/org/mxchange/jfinancials/converter/mobileprovider/FinancialsMobileProviderConverter.java
src/java/org/mxchange/jfinancials/converter/payment_type/FinancialsPaymentTypeConverter.java
src/java/org/mxchange/jfinancials/converter/personal_title/FinancialsPersonalTitleConverter.java
src/java/org/mxchange/jfinancials/converter/profile_mode/FinancialsProfileModeConverter.java
src/java/org/mxchange/jfinancials/converter/user/FinancialsUserConverter.java
src/java/org/mxchange/jfinancials/converter/user_account_status/FinancialsUserAccountStatusConverter.java
src/java/org/mxchange/jfinancials/listener/FinancialsWebApplicationListener.java [new file with mode: 0644]
src/java/org/mxchange/jfinancials/validator/birthday/FinancialsBirthdayValidator.java
src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsBasicDataCompanyNameValidator.java [new file with mode: 0644]
src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java [deleted file]
src/java/org/mxchange/jfinancials/validator/business/headquarter/FinancialsHeadquarterCompanyNameValidator.java [new file with mode: 0644]
src/java/org/mxchange/jfinancials/validator/emailaddress/FinancialsEmailAddressValidator.java
src/java/org/mxchange/jfinancials/validator/emailaddress/basicdata/FinancialsBasicDataEmailAddressValidator.java
src/java/org/mxchange/jfinancials/validator/emailaddress/branchoffice/FinancialsBranchOfficeEmailAddressValidator.java
src/java/org/mxchange/jfinancials/validator/emailaddress/employee/FinancialsEmployeeEmailAddressValidator.java [new file with mode: 0644]
src/java/org/mxchange/jfinancials/validator/emailaddress/headquarter/FinancialsHeadquarterEmailAddressValidator.java
src/java/org/mxchange/jfinancials/validator/names/FinancialsNameValidator.java
src/java/org/mxchange/jfinancials/validator/password/FinancialsUserPasswordValidator.java
src/java/org/mxchange/jfinancials/validator/phone/abroad/FinancialsAbroadDialValidator.java
src/java/org/mxchange/jfinancials/validator/phone/number/FinancialsPhoneNumberValidator.java
src/java/org/mxchange/jfinancials/validator/privacy_terms/FinancialsPrivacyTermsCheckboxValidator.java
src/java/org/mxchange/jfinancials/validator/url/FinancialsUrlValidator.java
src/java/org/mxchange/jfinancials/validator/user/FinancialsUserIdValidator.java

index 560e3dfe114eab07e338bd1c7b198d751d17d26e..b083696f1aec6c2897fb5e4d2c4a13d3fc7ccfb4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 0c8d018d23c6fad052e1a676174473eccfaf4466..fecbc631eedc2373888817c0c27c5a349d2ab1b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index e852832c76d232f18789a919e2921c8b14b228e0..2ff0466a8ccc7992fab63a99ea2cced760d30333 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index fa1780a522c07d04c3e8b09412c14f3684310156..16f7e29c87379f2f415b6108b261faa9878ba7e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index c75af1cc7dd02e9178c2fbde39aace057062322e..aec94af558f07cba0cbe501cf6342dd13f7982f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 8d4e1ba9d1c5f4a2be6fb91c5ddf8fad1ac46099..3ed4cf3f727b6f1c428822381655a5ee2bcfdbf6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 960513260ae808793a2963009bd63d4a7cfba096..7686c8c14561b661bf29c5acc024ff507f2ac8f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index b671dec4fadc0bd494f91b421ec8af54f2513154..622b0d2ce75736b76511fbf86ad06b902ef05e88 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 6f74301d8555a84d83930b5dafddf46959eb159f..fa1a00aa58727d43d13ae41ef67f70dc6d66577a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -33,6 +33,7 @@ public class FinancialsDayOfTheWeekConverter extends EnumConverter {
         * enumeration as class type.
         */
        public FinancialsDayOfTheWeekConverter () {
+               // Call other constructor with class type
                super(DayOfTheWeek.class);
        }
 
index 2904f48c051328dee917a103cd32208b7c00b8f1..e2468223e45a50b9719de490e5fa78f5d50c6852 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 2c62837d891b19326a25e6047702178a8a422e51..f9aa1c92aa899322aa71a585ddaee518ce0d0d7a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 3fb62941ebd9128d06e94e458467ea059fb21213..464796097e9a170d0da0080db8f6d12af07c172b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index a3036e57a213a31a29386224ad3da9a843f864e1..11880df34d2220d890f5f21fc90b3082f3b5670b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 1925c0ec16d8b6ac290f93119751fdca63b11b35..d8ca865a4f03df89989b41fa0a82cd2abf354fb8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -33,6 +33,7 @@ public class FinancialsPaymentTypeConverter extends EnumConverter {
         * enumeration as class type.
         */
        public FinancialsPaymentTypeConverter () {
+               // Call other constructor with class type
                super(PaymentType.class);
        }
 
index 7e0da8a95b02ab008d6b015d9716a048fdd53dc8..36be68d9406ead0c839b7d23e74601cb8c0d30d7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index fe8d8021eff3f0d937b580b1801b42b89529a411..dbeebe707a3405db8c75a6d955e75dcd5fe8f35b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 82edd6bfb9ba16522062620a63bbcc3f36dc57c2..39b0591a05d32fffc0f41fd2b040a1c2665a599c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 0f45702959bc3c0114769a95ca6f23ea7a79c233..381896a2a0cfc2734d829ba85e6f95c2f97fd0a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
diff --git a/src/java/org/mxchange/jfinancials/listener/FinancialsWebApplicationListener.java b/src/java/org/mxchange/jfinancials/listener/FinancialsWebApplicationListener.java
new file mode 100644 (file)
index 0000000..ad4b9df
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2017, 2018 Free Software Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.listener;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.annotation.WebListener;
+import org.mxchange.jcoreee.bean.faces.BaseFacesBean;
+
+/**
+ * A web-application listener for de-/initialization stuff
+ * <p>
+ * @author Roland Haeder<roland@mxchange.org>
+ */
+@WebListener
+public class FinancialsWebApplicationListener implements ServletContextListener {
+
+       @Override
+       public void contextDestroyed (final ServletContextEvent sce) {
+               // Remove all bundles
+               BaseFacesBean.removeBundles();
+       }
+
+       @Override
+       public void contextInitialized (final ServletContextEvent sce) {
+       }
+
+}
index 80dcdaf2695d4e5235e07d6681f462a3526ca96a..fe4e44a12b6431028b44252839cd881b7f87cd8c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsBasicDataCompanyNameValidator.java b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsBasicDataCompanyNameValidator.java
new file mode 100644 (file)
index 0000000..6044ea0
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2017, 2018 Free Software Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.validator.business.basicdata;
+
+import java.text.MessageFormat;
+import javax.enterprise.inject.spi.CDI;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.FacesValidator;
+import javax.faces.validator.ValidatorException;
+import org.mxchange.jcoreee.validator.string.BaseStringValidator;
+import org.mxchange.jfinancials.beans.business.basicdata.FinancialsBasicDataWebRequestBean;
+import org.mxchange.jfinancials.beans.business.basicdata.FinancialsBasicDataWebRequestController;
+
+/**
+ * A validator for basic data company names
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesValidator (value = "BasicDataCompanyNameValidator")
+public class FinancialsBasicDataCompanyNameValidator extends BaseStringValidator {
+
+       /**
+        * Business basic data backing bean
+        */
+       private static FinancialsBasicDataWebRequestController BASIC_DATA_CONTROLLER;
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 57_283_657_476_561L;
+
+       @Override
+       public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
+               // Is the instance there?
+               if (null == BASIC_DATA_CONTROLLER) {
+                       // Get bean from CDI directly
+                       BASIC_DATA_CONTROLLER = CDI.current().select(FinancialsBasicDataWebRequestBean.class).get();
+               }
+
+               // All accepted, required fields
+               final String[] requiredFields = {"companyName"}; //NOI18N
+
+               // Pre-validation (example: not null, not a string, empty string ...)
+               super.preValidate(context, component, value, requiredFields, false);
+
+               // Convert name to string (now securely checked in BaseStringValidator)
+               final String companyName = (String) value;
+
+               // Default is to check on existing names
+               Boolean checkExisting = Boolean.TRUE;
+
+               // Is attribute "allowEmptyRequiredData" set?
+               if (component.getAttributes().containsKey("checkExisting")) { //NOI18N
+                       // Get attribute
+                       final Object attribute = component.getAttributes().get("checkExisting"); //NOI18N
+
+                       // Make sure, it is Boolean as no String is accepted anymore
+                       if (!(attribute instanceof String)) {
+                               // Not valid attribute, please use "true" or "false" (default)
+                               throw new IllegalArgumentException("checkExisting must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
+                       }
+
+                       // Securely cast it
+                       checkExisting = Boolean.parseBoolean((String) attribute);
+               }
+
+               // Check if name is already used
+               final Boolean nameExists = BASIC_DATA_CONTROLLER.isCompanyNameUsed(companyName);
+
+               // Is the user id valid?
+               if ((!nameExists) && (checkExisting)) {
+                       // Format message
+                       final String message = MessageFormat.format("No basic data found with comany name {0}.", companyName);
+
+                       // Name does not exist
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
+               } else if ((nameExists) && (!checkExisting)) {
+                       // Format message
+                       final String message = MessageFormat.format("Found basic data with comany name {0}.", companyName);
+
+                       // Name already exists
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
+               }
+       }
+
+}
diff --git a/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java b/src/java/org/mxchange/jfinancials/validator/business/basicdata/FinancialsCompanyNameValidator.java
deleted file mode 100644 (file)
index f93f8cf..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2017 Roland Häder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jfinancials.validator.business.basicdata;
-
-import java.text.MessageFormat;
-import javax.enterprise.inject.spi.CDI;
-import javax.faces.application.FacesMessage;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.validator.FacesValidator;
-import javax.faces.validator.ValidatorException;
-import org.mxchange.jcoreee.validator.string.BaseStringValidator;
-import org.mxchange.jfinancials.beans.business.basicdata.FinancialsBasicDataWebRequestBean;
-import org.mxchange.jfinancials.beans.business.basicdata.FinancialsBasicDataWebRequestController;
-
-/**
- * A validator for company names
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-@FacesValidator (value = "CompanyNameValidator")
-public class FinancialsCompanyNameValidator extends BaseStringValidator {
-
-       /**
-        * Business basic data backing bean
-        */
-       private static FinancialsBasicDataWebRequestController BASIC_DATA_CONTROLLER;
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 57_283_657_476_561L;
-
-       @Override
-       public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
-               // Is the instance there?
-               if (null == BASIC_DATA_CONTROLLER) {
-                       // Get bean from CDI directly
-                       BASIC_DATA_CONTROLLER = CDI.current().select(FinancialsBasicDataWebRequestBean.class).get();
-               }
-
-               // All accepted, required fields
-               final String[] requiredFields = {"companyName"}; //NOI18N
-
-               // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, false);
-
-               // Convert name to string (now securely checked in BaseStringValidator)
-               final String companyName = (String) value;
-
-               // Default is to check on existing names
-               Boolean checkExisting = Boolean.TRUE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("checkExisting")) { //NOI18N
-                       // Get attribute
-                       final Object attribute = component.getAttributes().get("checkExisting"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("checkExisting must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       checkExisting = Boolean.parseBoolean((String) attribute);
-               }
-
-               // Check if name is already used
-               final Boolean nameExists = BASIC_DATA_CONTROLLER.isCompanyNameUsed(companyName);
-
-               // Is the user id valid?
-               if ((!nameExists) && (checkExisting)) {
-                       // Format message
-                       final String message = MessageFormat.format("No basic data found with comany name {0}.", companyName);
-
-                       // Name does not exist
-                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
-               } else if ((nameExists) && (!checkExisting)) {
-                       // Format message
-                       final String message = MessageFormat.format("Found basic data with comany name {0}.", companyName);
-
-                       // Name already exists
-                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
-               }
-       }
-
-}
diff --git a/src/java/org/mxchange/jfinancials/validator/business/headquarter/FinancialsHeadquarterCompanyNameValidator.java b/src/java/org/mxchange/jfinancials/validator/business/headquarter/FinancialsHeadquarterCompanyNameValidator.java
new file mode 100644 (file)
index 0000000..3a9134b
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2017, 2018 Free Software Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.validator.business.headquarter;
+
+import java.text.MessageFormat;
+import javax.enterprise.inject.spi.CDI;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.FacesValidator;
+import javax.faces.validator.ValidatorException;
+import org.mxchange.jcoreee.validator.string.BaseStringValidator;
+import org.mxchange.jfinancials.beans.business.headquarter.FinancialsHeadquarterWebRequestBean;
+import org.mxchange.jfinancials.beans.business.headquarter.FinancialsHeadquarterWebRequestController;
+
+/**
+ * A validator for headquarter company names
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesValidator (value = "HeadquarterCompanyNameValidator")
+public class FinancialsHeadquarterCompanyNameValidator extends BaseStringValidator {
+
+       /**
+        * Headquarter backing bean
+        */
+       private static FinancialsHeadquarterWebRequestController HEADQUARTER_CONTROLLER;
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 57_283_657_476_561L;
+
+       @Override
+       public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
+               // Is the instance there?
+               if (null == HEADQUARTER_CONTROLLER) {
+                       // Get bean from CDI directly
+                       HEADQUARTER_CONTROLLER = CDI.current().select(FinancialsHeadquarterWebRequestBean.class).get();
+               }
+
+               // All accepted, required fields
+               final String[] requiredFields = {"companyName"}; //NOI18N
+
+               // Pre-validation (example: not null, not a string, empty string ...)
+               super.preValidate(context, component, value, requiredFields, false);
+
+               // Convert name to string (now securely checked in BaseStringValidator)
+               final String companyName = (String) value;
+
+               // Default is to check on existing names
+               Boolean checkExisting = Boolean.TRUE;
+
+               // Is attribute "allowEmptyRequiredData" set?
+               if (component.getAttributes().containsKey("checkExisting")) { //NOI18N
+                       // Get attribute
+                       final Object attribute = component.getAttributes().get("checkExisting"); //NOI18N
+
+                       // Make sure, it is Boolean as no String is accepted anymore
+                       if (!(attribute instanceof String)) {
+                               // Not valid attribute, please use "true" or "false" (default)
+                               throw new IllegalArgumentException("checkExisting must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
+                       }
+
+                       // Securely cast it
+                       checkExisting = Boolean.parseBoolean((String) attribute);
+               }
+
+               // Check if name is already used
+               final Boolean nameExists = HEADQUARTER_CONTROLLER.isCompanyNameUsed(companyName);
+
+               // Is the user id valid?
+               if ((!nameExists) && (checkExisting)) {
+                       // Format message
+                       final String message = MessageFormat.format("No basic data found with comany name {0}.", companyName);
+
+                       // Name does not exist
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
+               } else if ((nameExists) && (!checkExisting)) {
+                       // Format message
+                       final String message = MessageFormat.format("Found basic data with comany name {0}.", companyName);
+
+                       // Name already exists
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); //NOI18N
+               }
+       }
+
+}
index 7f54b429b539167ac02168d262f357053a3ac474..8f0e39c2cbac8fb6030b90e10b5143ae4c2a8e21 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -56,34 +56,37 @@ public class FinancialsEmailAddressValidator extends BaseStringValidator {
         */
        private static final long serialVersionUID = 187_536_745_607_192L;
 
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsEmailAddressValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
        @Override
        public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
                // The required field
                final String[] requiredFields = {"emailAddress", "emailAddressRepeat", "resendEmailAddress"}; //NOI18N
 
-               // Default is to reject empty email address fields
-               Boolean allowEmptyValue = Boolean.FALSE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("allowEmptyValue")) { //NOI18N
-                       // Get attribute
-                       final Object attribute = component.getAttributes().get("allowEmptyValue"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("allowEmptyValue must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       allowEmptyValue = Boolean.parseBoolean((String) attribute);
-               }
-
                // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, allowEmptyValue);
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
 
                // Is the email address empty and allowed?
-               if (null == value && allowEmptyValue) {
+               if (null == value && this.allowEmptyRequiredData) {
                        // Then accept this here
                        return;
                } else if (null == value) {
index cb392b53be2614de95dd6da827157c486f3f1407..b42b24c525d1c8e78ff866827936de1decd1afbf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -56,34 +56,37 @@ public class FinancialsBasicDataEmailAddressValidator extends BaseStringValidato
         */
        private static final long serialVersionUID = 187_536_745_607_195L;
 
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsBasicDataEmailAddressValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
        @Override
        public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
                // The required field
                final String[] requiredFields = {"emailAddress", "emailAddressRepeat", "resendEmailAddress"}; //NOI18N
 
-               // Default is to reject empty email address fields
-               Boolean allowEmptyValue = Boolean.FALSE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("allowEmptyValue")) { //NOI18N
-                       // Get attribute
-                       final Object attribute = component.getAttributes().get("allowEmptyValue"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("allowEmptyValue must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       allowEmptyValue = Boolean.parseBoolean((String) attribute);
-               }
-
                // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, allowEmptyValue);
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
 
                // Is the email address empty and allowed?
-               if (null == value && allowEmptyValue) {
+               if (null == value && this.allowEmptyRequiredData) {
                        // Then accept this here
                        return;
                } else if (null == value) {
index 0432de1ae60981882aef8a0d8b37ea35df7fe1b9..a3952b1a5afec012fbd979bee0e8c0af05b3648e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -56,34 +56,37 @@ public class FinancialsBranchOfficeEmailAddressValidator extends BaseStringValid
         */
        private static final long serialVersionUID = 187_536_745_607_195L;
 
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsBranchOfficeEmailAddressValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
        @Override
        public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
                // The required field
                final String[] requiredFields = {"emailAddress", "emailAddressRepeat", "resendEmailAddress"}; //NOI18N
 
-               // Default is to reject empty email address fields
-               Boolean allowEmptyValue = Boolean.FALSE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("allowEmptyValue")) { //NOI18N
-                       // Get attribute
-                       final Object attribute = component.getAttributes().get("allowEmptyValue"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("allowEmptyValue must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       allowEmptyValue = Boolean.parseBoolean((String) attribute);
-               }
-
                // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, allowEmptyValue);
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
 
                // Is the email address empty and allowed?
-               if (null == value && allowEmptyValue) {
+               if (null == value && this.allowEmptyRequiredData) {
                        // Then accept this here
                        return;
                } else if (null == value) {
diff --git a/src/java/org/mxchange/jfinancials/validator/emailaddress/employee/FinancialsEmployeeEmailAddressValidator.java b/src/java/org/mxchange/jfinancials/validator/emailaddress/employee/FinancialsEmployeeEmailAddressValidator.java
new file mode 100644 (file)
index 0000000..6ac26e2
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2016 - 2018 Free Software Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.validator.emailaddress.employee;
+
+import java.text.MessageFormat;
+import java.util.regex.Pattern;
+import javax.enterprise.inject.spi.CDI;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.FacesValidator;
+import javax.faces.validator.ValidatorException;
+import org.mxchange.jcoreee.validator.string.BaseStringValidator;
+import org.mxchange.jfinancials.beans.business.employee.FinancialsEmployeeWebRequestBean;
+import org.mxchange.jfinancials.beans.business.employee.FinancialsEmployeeWebRequestController;
+
+/**
+ * A validator for employee email address validation
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesValidator (value = "EmployeeEmailAddressValidator")
+public class FinancialsEmployeeEmailAddressValidator extends BaseStringValidator {
+
+       /**
+        * Email pattern
+        */
+       private static final String EMAIL_REGEX = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"; //NOI18N
+
+       /**
+        * Employee backing bean
+        */
+       private static FinancialsEmployeeWebRequestController EMPLOYEE_CONTROLLER;
+
+       /**
+        * Pattern matcher
+        */
+       private static final Pattern PATTERN_MATCHER = Pattern.compile(FinancialsEmployeeEmailAddressValidator.EMAIL_REGEX);
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 187_536_745_607_196L;
+
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsEmployeeEmailAddressValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
+       @Override
+       public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
+               // The required field
+               final String[] requiredFields = {"employeeEmailAddress"}; //NOI18N
+
+               // Pre-validation (example: not null, not a string, empty string ...)
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
+
+               // Is the email address empty and allowed?
+               if (null == value && this.allowEmptyRequiredData) {
+                       // Then accept this here
+                       return;
+               } else if (null == value) {
+                       // Abort here
+                       throw new ValidatorException(new FacesMessage("No empty email address allowed.")); //NOI18N
+               }
+
+               // Get string from object ... ;-)
+               // @TODO Add IDN support (GNU lib?) Search for emailAddressRepeat
+               final String emailAddress = String.valueOf(value).trim();
+
+               // Checks if the email address matches a regex ("low-level" check)
+               // @TODO Should also be done by <f:validatorRegex />)
+               final boolean matches = PATTERN_MATCHER.matcher(emailAddress).matches(); //NOI18N
+
+               // Is the email address valid?
+               if (!matches) {
+                       // Generate message
+                       String message = MessageFormat.format("Email address {0} does not match regular expression.", emailAddress); //NOI18N
+
+                       // Not matching
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_WARN, message, message));
+               }
+
+               // Get client id (aka form id)
+               final String clientId = component.getClientId();
+
+               // Is the instance there?
+               if (null == EMPLOYEE_CONTROLLER) {
+                       // Get bean from CDI directly
+                       EMPLOYEE_CONTROLLER = CDI.current().select(FinancialsEmployeeWebRequestBean.class).get();
+               }
+
+               // Is it registered?
+               final Boolean isRegistered = EMPLOYEE_CONTROLLER.isEmailAddressRegistered(emailAddress);
+
+               // Is the email address already registered?
+               if ((!clientId.endsWith("resendEmailAddress")) && (isRegistered)) { //NOI18N
+                       // Generate message
+                       final String message = MessageFormat.format("Email address {0} is already registered.", emailAddress); //NOI18N
+
+                       // No, then abort here
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_INFO, message, message));
+               } else if ((clientId.endsWith("resendEmailAddress")) && (!isRegistered)) { //NOI18N
+                       // Generate message
+                       final String message = MessageFormat.format("Email address {0} is not registered.", emailAddress); //NOI18N
+
+                       // No, then abort here
+                       throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_INFO, message, message));
+               }
+       }
+
+}
index bb157d02ba9f593407efd754df977b041ed7f6df..3bf96872b3f5206d56af7bc0f54fc406838586fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -56,34 +56,37 @@ public class FinancialsHeadquarterEmailAddressValidator extends BaseStringValida
         */
        private static final long serialVersionUID = 187_536_745_607_194L;
 
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsHeadquarterEmailAddressValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
        @Override
        public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
                // The required field
                final String[] requiredFields = {"emailAddress", "emailAddressRepeat", "resendEmailAddress"}; //NOI18N
 
-               // Default is to reject empty email address fields
-               Boolean allowEmptyValue = Boolean.FALSE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("allowEmptyValue")) { //NOI18N
-                       // Get attribute
-                       final Object attribute = component.getAttributes().get("allowEmptyValue"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("allowEmptyValue must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       allowEmptyValue = Boolean.parseBoolean((String) attribute);
-               }
-
                // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, allowEmptyValue);
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
 
                // Is the email address empty and allowed?
-               if (null == value && allowEmptyValue) {
+               if (null == value && this.allowEmptyRequiredData) {
                        // Then accept this here
                        return;
                } else if (null == value) {
index 62b4e74413c717a29ca4d59c71912d57967031be..e4212ba252cf5379866836e99f2631ac28d6f56e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 82bc15e534b72fb98651739d572fa395b7e7e714..c8c87ee9ff004696174dca1299499f20d3f93117 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 2cdd20bca7625f595219c69bde99c9ac83651aaf..d0129d631ea5c6da97fcae78bf67a821ec45be11 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index bb8c20c5dbdc8201919ef4536b6439b31d0e4808..13605ab4f11f9f4fa5ce8acec29b4dfc352a1b44 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 0ebd2e4f8fc8883cd14dc284ba7b2292407de10c..a46814113b025c9ab54573476fba4b87c1727523 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index e4dcdf30857e263d695ac5011caeaddc1da4976c..3bba2ab1c02ec88b5179826df099359076fef003 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -49,34 +49,37 @@ public class FinancialsUrlValidator extends BaseStringValidator {
         */
        private static final long serialVersionUID = 187_536_745_607_193L;
 
+       /**
+        * Whether empty data is allowed
+        */
+       private Boolean allowEmptyRequiredData;
+
+       /**
+        * Default constructor
+        */
+       public FinancialsUrlValidator () {
+               this.allowEmptyRequiredData = Boolean.FALSE;
+       }
+
+       /**
+        * Setter for allowEmptyRequiredData flag
+        * <p>
+        * @param allowEmptyRequiredData Whether empty values are allowed
+        */
+       public void setAllowEmptyRequiredData (final Boolean allowEmptyRequiredData) {
+               this.allowEmptyRequiredData = allowEmptyRequiredData;
+       }
+
        @Override
        public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException {
                // The required field
                final String[] requiredFields = {"companyWebsiteUrl"}; //NOI18N
 
-               // Default is to reject empty email address fields
-               Boolean allowEmptyValue = Boolean.FALSE;
-
-               // Is attribute "allowEmptyValue" set?
-               if (component.getAttributes().containsKey("allowEmptyValue")) { //NOI18N
-                       // Get attribute
-                       Object attribute = component.getAttributes().get("allowEmptyValue"); //NOI18N
-
-                       // Make sure, it is Boolean as no String is accepted anymore
-                       if (!(attribute instanceof String)) {
-                               // Not valid attribute, please use "true" or "false" (default)
-                               throw new IllegalArgumentException("allowEmptyValue must be of type String. Please use \"true\" or \"false\" for f:attribute value."); //NOI18N
-                       }
-
-                       // Securely cast it
-                       allowEmptyValue = Boolean.parseBoolean((String) attribute);
-               }
-
                // Pre-validation (example: not null, not a string, empty string ...)
-               super.preValidate(context, component, value, requiredFields, allowEmptyValue);
+               super.preValidate(context, component, value, requiredFields, this.allowEmptyRequiredData);
 
                // Is the email address empty and allowed?
-               if (null == value && allowEmptyValue) {
+               if (null == value && this.allowEmptyRequiredData) {
                        // Then accept this here
                        return;
                } else if (null == value) {
index 7af9f53e87e32714730bf9b319fc3a5260d99d04..6861609528f680f1aa013f3c5a98ea5f0ada9e8e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by