BrightSide Workbench Full Report + Source Code
ServiceContext.java
Go to the documentation of this file.
1 /*
2  * TurrĂ³ i Cutiller Foundation. License notice.
3  * Copyright (C) 2020 Lluis TurrĂ³ Cutiller <http://www.turro.org/>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Affero General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Affero General Public License for more details.
14  *
15  * You should have received a copy of the GNU Affero General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 package org.turro.contacts.service;
20 
21 import java.util.Arrays;
22 import java.util.List;
23 import org.turro.string.Strings;
24 import org.turro.elephant.context.ElephantProperties;
25 import org.turro.elephant.context.IConstructor;
26 
31 public class ServiceContext {
32 
33  public String getAttribute(String attribute) {
34  return getAttribute(attribute, null);
35  }
36 
37  public String getAttribute(String attribute, String defaultValue) {
38  return getServiceContextAttribute(attribute, defaultValue);
39  }
40 
41  /* Service's context */
42 
43  private static final String SERVICE_CONTEXT = "service-context";
44 
45  public static String getServiceContextAttribute(String attribute, String defaultValue) {
46  return ElephantProperties.getContextProperty(SERVICE_CONTEXT, attribute, defaultValue);
47  }
48 
49  public static List<String> getServiceTypeList() {
50  return ElephantProperties.getContextPrefixedProperties(SERVICE_CONTEXT, "type_");
51  }
52 
53  public static List<String> getServiceThematicList() {
54  return ElephantProperties.getContextPrefixedProperties(SERVICE_CONTEXT, "thematic_");
55  }
56 
57  public static boolean getAllowSingle() {
58  return "true".equals(getServiceContextAttribute("allow-single", "false"));
59  }
60 
61  public static boolean getAllowNew(IConstructor constructor) {
62  String marketRoles = getServiceContextAttribute("market-roles", "@partner:on");
63  return constructor.isInRole("marketplace:new") ||
64  (Strings.isBlank(marketRoles) ? false : constructor.isInRole(marketRoles));
65  }
66 
67  public static boolean getAllowQuestion(IConstructor constructor) {
68  String questionRoles = getServiceContextAttribute("question-roles", "@partner:on|@patron:on");
69  return constructor.isInRole("marketplace:new") ||
70  (Strings.isBlank(questionRoles) ? false : constructor.isInRole(questionRoles));
71  }
72 
73  public static List<String> getRecipients(IConstructor constructor) {
74  String recipients = getServiceContextAttribute("recipients", "contacts_admin,partner,patron,guest");
75  return Arrays.asList(recipients.split("\\s*,\\s*"));
76  }
77 
78 }
static boolean getAllowQuestion(IConstructor constructor)
static List< String > getServiceThematicList()
static boolean getAllowNew(IConstructor constructor)
static String getServiceContextAttribute(String attribute, String defaultValue)
String getAttribute(String attribute, String defaultValue)
static List< String > getRecipients(IConstructor constructor)
static List< String > getContextPrefixedProperties(String context, String prefix)
static String getContextProperty(String context, String property)