James Moger
2013-10-15 e1908933fa9968b11e9ea03d88730aee3140534b
src/main/java/com/gitblit/models/RepositoryModel.java
@@ -26,16 +26,18 @@
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.AuthorizationControl;
import com.gitblit.Constants.CommitMessageRenderer;
import com.gitblit.Constants.FederationStrategy;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.ModelUtils;
import com.gitblit.utils.StringUtils;
/**
 * RepositoryModel is a serializable model class that represents a Gitblit
 * repository including its configuration settings and access restriction.
 *
 *
 * @author James Moger
 *
 *
 */
public class RepositoryModel implements Serializable, Comparable<RepositoryModel> {
@@ -46,11 +48,12 @@
   public String description;
   public List<String> owners;
   public Date lastChange;
   public String lastChangeAuthor;
   public boolean hasCommits;
   public boolean showRemoteBranches;
   public boolean useTickets;
   public boolean useDocs;
   public boolean useIncrementalRevisionNumbers;
   public boolean useIncrementalPushTags;
   public String incrementalPushTagPrefix;
   public AccessRestrictionType accessRestriction;
   public AuthorizationControl authorizationControl;
   public boolean allowAuthenticated;
@@ -81,11 +84,13 @@
   public String gcThreshold;
   public int gcPeriod;
   public int maxActivityCommits;
   public List<String> metricAuthorExclusions;
   public CommitMessageRenderer commitMessageRenderer;
   public transient boolean isCollectingGarbage;
   public Date lastGC;
   public String sparkleshareId;
   public RepositoryModel() {
      this("", "", "", new Date(0));
   }
@@ -97,13 +102,14 @@
      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>();
      this.isBare = true;
      addOwner(owner);
   }
   public List<String> getLocalBranches() {
      if (ArrayUtils.isEmpty(availableRefs)) {
         return new ArrayList<String>();
@@ -116,30 +122,30 @@
      }
      return localBranches;
   }
   public void addFork(String repository) {
      if (forks == null) {
         forks = new TreeSet<String>();
      }
      forks.add(repository);
   }
   public void removeFork(String repository) {
      if (forks == null) {
         return;
      }
      forks.remove(repository);
   }
   public void resetDisplayName() {
      displayName = null;
   }
   @Override
   public int hashCode() {
      return name.hashCode();
   }
   @Override
   public boolean equals(Object o) {
      if (o instanceof RepositoryModel) {
@@ -160,34 +166,38 @@
   public int compareTo(RepositoryModel o) {
      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) == '~';
      return !StringUtils.isEmpty(projectPath) && ModelUtils.isPersonalRepository(projectPath);
   }
   public boolean isUsersPersonalRepository(String username) {
      return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
      return !StringUtils.isEmpty(projectPath) && ModelUtils.isUsersPersonalRepository(username, projectPath);
   }
   public boolean allowAnonymousView() {
      return !accessRestriction.atLeast(AccessRestrictionType.VIEW);
   }
   public boolean isShowActivity() {
      return maxActivityCommits > -1;
   }
   public boolean isSparkleshared() {
      return !StringUtils.isEmpty(sparkleshareId);
   }
   public RepositoryModel cloneAs(String cloneName) {
      RepositoryModel clone = new RepositoryModel();
      clone.originRepository = name;
@@ -202,11 +212,9 @@
      clone.showRemoteBranches = false;
      clone.allowForks = false;
      clone.useDocs = useDocs;
      clone.useIncrementalRevisionNumbers = useIncrementalRevisionNumbers;
      clone.useTickets = useTickets;
      clone.skipSizeCalculation = skipSizeCalculation;
      clone.skipSummaryMetrics = skipSummaryMetrics;
      clone.sparkleshareId = sparkleshareId;
      clone.sparkleshareId = sparkleshareId;
      return clone;
   }