View Javadoc

1   package fr.in2p3.jsaga.impl.context.attrs;
2   
3   import fr.in2p3.jsaga.impl.attributes.Attribute;
4   import fr.in2p3.jsaga.impl.attributes.AttributeScalar;
5   import fr.in2p3.jsaga.impl.context.ContextImpl;
6   import fr.in2p3.jsaga.impl.monitoring.MetricMode;
7   import fr.in2p3.jsaga.impl.monitoring.MetricType;
8   import org.ogf.saga.error.*;
9   
10  import java.util.regex.Pattern;
11  
12  /* ***************************************************
13   * *** Centre de Calcul de l'IN2P3 - Lyon (France) ***
14   * ***             http://cc.in2p3.fr/             ***
15   * ***************************************************
16   * File:   UrlPrefixAttribute
17   * Author: Sylvain Reynaud (sreynaud@in2p3.fr)
18   * ***************************************************
19   * Description:                                      */
20  
21  /**
22   *
23   */
24  public class UrlPrefixAttribute implements AttributeScalar {
25      private static final Pattern PATTERN = Pattern.compile("[\\p{Alpha}][\\p{Alpha}\\p{Digit}-]*");
26      private String m_value;
27  
28      public UrlPrefixAttribute() {
29          m_value = null;
30      }
31  
32      public String getKey() {
33          return ContextImpl.URL_PREFIX;
34      }
35  
36      public String getDescription() {
37          return "by adding this prefix at the beginning of URL, you can use any protocol without configuring it";
38      }
39  
40      public boolean isReadOnly() {
41          return false;
42      }
43  
44      public MetricMode getMetricMode() {
45          return MetricMode.Final;
46      }
47  
48      public MetricType getMetricType() {
49          return MetricType.String;
50      }
51  
52      public Attribute clone() throws CloneNotSupportedException {
53          UrlPrefixAttribute clone = new UrlPrefixAttribute();
54          clone.m_value = m_value;
55          return clone;
56      }
57  
58      public void setValue(String value) throws NotImplementedException, IncorrectStateException, PermissionDeniedException, BadParameterException {
59          if (PATTERN.matcher(value).matches()) {
60              m_value = value;
61          } else {
62              throw new BadParameterException("UrlPrefix '"+value+"' does not match regular expression: "+PATTERN.pattern());
63          }
64      }
65  
66      public String getValue() throws NotImplementedException, IncorrectStateException, NoSuccessException {
67          return m_value;
68      }
69  }