| | |
| | |
|
| | | import java.io.Serializable;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Collection;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
| | | // field names are reflectively mapped in EditRepository page
|
| | | public String name;
|
| | | public String description;
|
| | | public String owner;
|
| | | public List<String> owners;
|
| | | public Date lastChange;
|
| | | public boolean hasCommits;
|
| | | public boolean showRemoteBranches;
|
| | |
| | | public boolean allowForks;
|
| | | public Set<String> forks;
|
| | | public String originRepository;
|
| | | public boolean verifyCommitter;
|
| | | public String gcThreshold;
|
| | | public int gcPeriod;
|
| | | public int maxActivityCommits;
|
| | | |
| | | public transient boolean isCollectingGarbage;
|
| | | public Date lastGC;
|
| | |
|
| | | public RepositoryModel() {
|
| | | this("", "", "", new Date(0));
|
| | |
| | | public RepositoryModel(String name, String description, String owner, Date lastchange) {
|
| | | this.name = name;
|
| | | this.description = description;
|
| | | this.owner = owner;
|
| | | this.lastChange = lastchange;
|
| | | this.accessRestriction = AccessRestrictionType.NONE;
|
| | | this.authorizationControl = AuthorizationControl.NAMED;
|
| | | this.federationSets = new ArrayList<String>();
|
| | | this.federationStrategy = FederationStrategy.FEDERATE_THIS; |
| | | this.federationStrategy = FederationStrategy.FEDERATE_THIS; |
| | | this.projectPath = StringUtils.getFirstPathElement(name);
|
| | | this.owners = new ArrayList<String>();
|
| | | |
| | | addOwner(owner);
|
| | | }
|
| | |
|
| | | public List<String> getLocalBranches() {
|
| | |
| | | public void resetDisplayName() {
|
| | | displayName = null;
|
| | | }
|
| | | |
| | | @Override
|
| | | public int hashCode() {
|
| | | return name.hashCode();
|
| | | }
|
| | | |
| | | @Override
|
| | | public boolean equals(Object o) {
|
| | | if (o instanceof RepositoryModel) {
|
| | | return name.equals(((RepositoryModel) o).name);
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String toString() {
|
| | |
| | | return StringUtils.compareRepositoryNames(name, o.name);
|
| | | }
|
| | |
|
| | | public boolean isFork() {
|
| | | return !StringUtils.isEmpty(originRepository);
|
| | | }
|
| | | |
| | | public boolean isOwner(String username) {
|
| | | if (StringUtils.isEmpty(username) || ArrayUtils.isEmpty(owners)) {
|
| | | return false;
|
| | | }
|
| | | return owners.contains(username.toLowerCase());
|
| | | }
|
| | | |
| | | public boolean isPersonalRepository() {
|
| | | return !StringUtils.isEmpty(projectPath) && projectPath.charAt(0) == '~';
|
| | | }
|
| | |
|
| | | public boolean isUsersPersonalRepository(String username) {
|
| | | return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
|
| | | }
|
| | | |
| | | public boolean allowAnonymousView() {
|
| | | return !accessRestriction.atLeast(AccessRestrictionType.VIEW);
|
| | | }
|
| | |
|
| | | public RepositoryModel cloneAs(String cloneName) {
|
| | |
| | | clone.projectPath = StringUtils.getFirstPathElement(cloneName);
|
| | | clone.isBare = true;
|
| | | clone.description = description;
|
| | | clone.accessRestriction = accessRestriction;
|
| | | clone.authorizationControl = authorizationControl;
|
| | | clone.accessRestriction = AccessRestrictionType.PUSH;
|
| | | clone.authorizationControl = AuthorizationControl.NAMED;
|
| | | clone.federationStrategy = federationStrategy;
|
| | | clone.showReadme = showReadme;
|
| | | clone.showRemoteBranches = false;
|
| | |
| | | clone.skipSummaryMetrics = skipSummaryMetrics;
|
| | | return clone;
|
| | | }
|
| | |
|
| | | public void addOwner(String username) {
|
| | | if (!StringUtils.isEmpty(username)) {
|
| | | String name = username.toLowerCase();
|
| | | // a set would be more efficient, but this complicates JSON
|
| | | // deserialization so we enforce uniqueness with an arraylist
|
| | | if (!owners.contains(name)) {
|
| | | owners.add(name);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public void removeOwner(String username) {
|
| | | if (!StringUtils.isEmpty(username)) {
|
| | | owners.remove(username.toLowerCase());
|
| | | }
|
| | | }
|
| | |
|
| | | public void addOwners(Collection<String> usernames) {
|
| | | if (!ArrayUtils.isEmpty(usernames)) {
|
| | | for (String username : usernames) {
|
| | | addOwner(username);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public void removeOwners(Collection<String> usernames) {
|
| | | if (!ArrayUtils.isEmpty(owners)) {
|
| | | for (String username : usernames) {
|
| | | removeOwner(username);
|
| | | }
|
| | | }
|
| | | }
|
| | | } |