View Javadoc

1   /*
2    * Copyright 2012-2013 smartics, Kronseder & Reiner GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package de.smartics.sandbox.agile;
17  
18  import de.smartics.properties.api.core.annotations.AccessType;
19  import de.smartics.properties.api.core.annotations.PropertyExpression;
20  import de.smartics.properties.api.core.annotations.PropertyIntValueRange;
21  import de.smartics.properties.api.core.annotations.PropertyKeyName;
22  import de.smartics.properties.api.core.annotations.PropertyLifecycle;
23  import de.smartics.properties.api.core.annotations.PropertySet;
24  import de.smartics.properties.api.core.annotations.PropertyLifecycle.UpdateInterval;
25  import de.smartics.properties.api.core.domain.PropertyDescriptor;
26  
27  /**
28   * The example features an artificial enumeration of properties of a user story.
29   * <p>
30   * Just a paragraph to test.
31   * </p>
32   */
33  @PropertySet("agile")
34  public interface UserStoryProperties
35  {
36    /**
37     * The name of a user story.
38     *
39     * @return the property value.
40     */
41    @PropertyLifecycle(access = AccessType.READ_WRITE,
42        updateInterval = UpdateInterval.NO_CACHING)
43    String name();
44  
45    /**
46     * The descriptor of the name property.
47     *
48     * @return descriptor of the name property.
49     */
50    PropertyDescriptor namePropertyDescriptor();
51  
52    /**
53     * The story point stating the estimated work to implement the story.
54     *
55     * @return the property value.
56     */
57    @PropertyKeyName("story-points")
58    @PropertyExpression("8")
59    // CHECKSTYLE:OFF
60    @PropertyIntValueRange({ 0, 1, 2, 3, 5, 8, 13, 21, 50, 100 })
61    // CHECKSTYLE:ON
62    @PropertyLifecycle(access = AccessType.READ_WRITE,
63        updateInterval = UpdateInterval.NO_CACHING)
64    int storyPoint();
65  
66    /**
67     * The descriptor of the story point property.
68     *
69     * @return descriptor of the story point property.
70     */
71    PropertyDescriptor storyPointPropertyDescriptor();
72  
73    /**
74     * The business priority of the user story.
75     *
76     * @return the property value.
77     */
78    @PropertyKeyName("business-priority")
79    @PropertyExpression("required")
80    @PropertyLifecycle(access = AccessType.READ_WRITE,
81        updateInterval = UpdateInterval.NO_CACHING)
82    Priority businessPriority();
83  
84    /**
85     * The descriptor of the business priority property.
86     *
87     * @return descriptor of the business priority property.
88     */
89    PropertyDescriptor businessPriorityPropertyDescriptor();
90  }