/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library 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 Lesser General Public License for more * details. */ package com.liferay.portal.kernel.theme; import com.liferay.portal.kernel.util.GetterUtil; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author Brian Wing Shun Chan */ public class ThemeCompanyLimit implements Serializable { public ThemeCompanyLimit() { _includes = new ArrayList<>(); _excludes = new ArrayList<>(); } public List<ThemeCompanyId> getExcludes() { return _excludes; } public List<ThemeCompanyId> getIncludes() { return _includes; } public boolean isExcluded(long companyId) { return _matches(_excludes, companyId); } public boolean isIncluded(long companyId) { return _matches(_includes, companyId); } public void setExcludes(List<? extends ThemeCompanyId> excludes) { _excludes = (List<ThemeCompanyId>)excludes; } public void setIncludes(List<? extends ThemeCompanyId> includes) { _includes = (List<ThemeCompanyId>)includes; } private boolean _matches( List<ThemeCompanyId> themeCompanyIds, long companyId) { for (int i = 0; i < themeCompanyIds.size(); i++) { ThemeCompanyId themeCompanyId = themeCompanyIds.get(i); String themeCompanyIdValue = themeCompanyId.getValue(); if (themeCompanyId.isPattern()) { Pattern pattern = Pattern.compile(themeCompanyIdValue); Matcher matcher = pattern.matcher(String.valueOf(companyId)); if (matcher.matches()) { return true; } } else { long themeCompanyIdValueLong = GetterUtil.getLong( themeCompanyIdValue); if (themeCompanyIdValueLong == companyId) { return true; } } } return false; } private List<ThemeCompanyId> _excludes; private List<ThemeCompanyId> _includes; }