package com.perforce.workspace.tjuricek.initializer.model; import java.util.Comparator; /** * How each item to be seeded in the perforce setup is to be used. */ public class PerforceItem { private int rank; private PerforceUser perforceUser; private PerforceClient perforceClient; private PerforceChangelist perforceChangelist; private PerforceDepot perforceDepot; private PerforceTrigger perforceTrigger; /** * The rank of an item indicates when it should be run in order. After we * load all the items from JSON, we sort them by this value. So things can * have the same rank, it just means they don't really depend on each * other. * <p/> * You probably want to label the JSON files including this rank, * just so that your directory listing gives you a sense of when things * are loaded. * <p/> * Note that we use rank mostly to organize things within a particular * "class" of operation. The order of operations of setting up a server is * quite complicated, in general, setup your tasks in these groups in * order: * <p/> * <ol> * <li>users</li> * <li>depots</li> * <li>triggers</li> * <li>changelists</li> * </ol> */ public int getRank() { return rank; } public void setRank(int rank) { this.rank = rank; } /** * @see PerforceUser */ public PerforceUser getPerforceUser() { return perforceUser; } public void setPerforceUser(PerforceUser perforceUser) { this.perforceUser = perforceUser; } /** * @see PerforceClient */ public PerforceClient getPerforceClient() { return perforceClient; } public void setPerforceClient(PerforceClient perforceClient) { this.perforceClient = perforceClient; } /** * @see PerforceChangelist */ public PerforceChangelist getPerforceChangelist() { return perforceChangelist; } public void setPerforceChangelist(PerforceChangelist perforceChangelist) { this.perforceChangelist = perforceChangelist; } public PerforceDepot getPerforceDepot() { return perforceDepot; } public void setPerforceDepot(PerforceDepot perforceDepot) { this.perforceDepot = perforceDepot; } public PerforceTrigger getPerforceTrigger() { return perforceTrigger; } public void setPerforceTrigger(PerforceTrigger perforceTrigger) { this.perforceTrigger = perforceTrigger; } /** * Allows the PerforceItem instances to be compared in something like * a SortedSet using their Rank. */ public static class PerforceItemComparator implements Comparator<PerforceItem> { @Override public int compare(PerforceItem perforceItem, PerforceItem perforceItem2) { Integer r1 = Integer.valueOf(perforceItem.rank); Integer r2 = Integer.valueOf(perforceItem2.rank); return r1.compareTo(r2); } } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PerforceItem that = (PerforceItem) o; if (rank != that.rank) return false; if (perforceChangelist != null ? !perforceChangelist.equals(that.perforceChangelist) : that.perforceChangelist != null) return false; if (perforceClient != null ? !perforceClient.equals(that.perforceClient) : that.perforceClient != null) return false; if (perforceDepot != null ? !perforceDepot.equals(that.perforceDepot) : that.perforceDepot != null) return false; if (perforceTrigger != null ? !perforceTrigger.equals(that.perforceTrigger) : that.perforceTrigger != null) return false; if (perforceUser != null ? !perforceUser.equals(that.perforceUser) : that.perforceUser != null) return false; return true; } @Override public int hashCode() { int result = rank; result = 31 * result + (perforceUser != null ? perforceUser.hashCode() : 0); result = 31 * result + (perforceClient != null ? perforceClient.hashCode() : 0); result = 31 * result + (perforceChangelist != null ? perforceChangelist.hashCode() : 0); result = 31 * result + (perforceDepot != null ? perforceDepot.hashCode() : 0); result = 31 * result + (perforceTrigger != null ? perforceTrigger.hashCode() : 0); return result; } @Override public String toString() { return "PerforceItem{" + "rank=" + rank + ", perforceUser=" + perforceUser + ", perforceClient=" + perforceClient + ", perforceChangelist=" + perforceChangelist + ", perforceDepot=" + perforceDepot + ", perforceTrigger=" + perforceTrigger + '}'; } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 9165 | tjuricek |
Some documentation framework and a fatjar style distribution for the initializer to run outside of a gradle plugin. Upped the version to 0.1.2, but this may need some testing before it's really guaranteed to work in standalone mode |
||
#1 | 9088 | tjuricek |
0.1.0 First version of the initializer. This currently requires setting up a local version of the p4java_ext project, since that project is awating approval into the main jcenter repository. |