View Javadoc

1   package org.mevenide.idea.psi.project;
2   
3   import com.intellij.psi.xml.XmlFile;
4   import java.util.Collections;
5   import java.util.HashMap;
6   import java.util.Map;
7   import org.mevenide.idea.psi.support.AbstractPsiBeanRowsObservable;
8   
9   /***
10   * @author Arik
11   */
12  public abstract class AbstractPsiTeamMembers extends AbstractPsiBeanRowsObservable {
13      private final Map<Integer, PsiTeamMemberRoles> rolesCache = Collections.synchronizedMap(
14          new HashMap<Integer, PsiTeamMemberRoles>(10));
15  
16      protected AbstractPsiTeamMembers(final XmlFile pXmlFile,
17                                       final String pContainerTagPath,
18                                       final String pRowTagName) {
19          super(pXmlFile, pContainerTagPath, pRowTagName);
20          registerTag("name", "name");
21          registerTag("id", "id");
22          registerTag("email", "email");
23          registerTag("organization", "organization");
24          registerTag("url", "url");
25          registerTag("timezone", "timezone");
26      }
27  
28      public String getName(final int pRow) {
29          return getValue(pRow, "name");
30      }
31  
32      public void setName(final int pRow, final String pName) {
33          setValue(pRow, "name", pName);
34      }
35  
36      public String getId(final int pRow) {
37          return getValue(pRow, "id");
38      }
39  
40      public void setId(final int pRow, final String pId) {
41          setValue(pRow, "id", pId);
42      }
43  
44      public String getEmail(final int pRow) {
45          return getValue(pRow, "email");
46      }
47  
48      public void setEmail(final int pRow, final String pEmail) {
49          setValue(pRow, "email", pEmail);
50      }
51  
52      public String getOrganization(final int pRow) {
53          return getValue(pRow, "organization");
54      }
55  
56      public void setOrganization(final int pRow, final String pOrganization) {
57          setValue(pRow, "organization", pOrganization);
58      }
59  
60      public String getUrl(final int pRow) {
61          return getValue(pRow, "url");
62      }
63  
64      public void setUrl(final int pRow, final String pUrl) {
65          setValue(pRow, "url", pUrl);
66      }
67  
68      public String getTimezone(final int pRow) {
69          return getValue(pRow, "timezone");
70      }
71  
72      public void setTimezone(final int pRow, final String pTimezone) {
73          setValue(pRow, "timezone", pTimezone);
74      }
75  
76      public final PsiTeamMemberRoles getRoles(final int pRow) {
77          PsiTeamMemberRoles props = rolesCache.get(pRow);
78          if (props == null) {
79              StringBuilder buf = new StringBuilder(psi.getContainerPath().getPath());
80              buf.append('/').append(psi.getRowTagName());
81              buf.append('[').append(pRow).append(']');
82              buf.append('/').append("roles");
83  
84              props = new PsiTeamMemberRoles(getXmlFile(), buf.toString());
85              rolesCache.put(pRow, props);
86          }
87  
88          return props;
89      }
90  }