001
014
015 package com.liferay.portlet.amazonrankings;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portlet.amazonrankings.model.AmazonRankings;
020 import com.liferay.portlet.amazonrankings.util.AmazonRankingsUtil;
021
022 import java.util.ArrayList;
023 import java.util.List;
024
025 import javax.portlet.PortletPreferences;
026 import javax.portlet.PreferencesValidator;
027 import javax.portlet.ValidatorException;
028
029
032 public class AmazonRankingsPreferencesValidator
033 implements PreferencesValidator {
034
035 public void validate(PortletPreferences preferences)
036 throws ValidatorException {
037
038 List<String> badIsbns = new ArrayList<String>();
039
040 String[] isbns = preferences.getValues("isbns", new String[0]);
041
042 for (String isbn : isbns) {
043 AmazonRankings amazonRankings =
044 AmazonRankingsUtil.getAmazonRankings(isbn);
045
046 if (amazonRankings == null) {
047 badIsbns.add(isbn);
048
049 if (_log.isInfoEnabled()) {
050 _log.info("Invalid ISBN " + isbn);
051 }
052 }
053 }
054
055 if (badIsbns.size() > 0) {
056 throw new ValidatorException("Failed to retrieve ISBNs", badIsbns);
057 }
058 }
059
060 private static Log _log = LogFactoryUtil.getLog(
061 AmazonRankingsPreferencesValidator.class);
062
063 }