1 package org.kuali.common.devops.model; 2 3 import org.kuali.common.core.build.ValidatingBuilder; 4 import org.kuali.common.core.validate.annotation.IdiotProofImmutable; 5 6 @IdiotProofImmutable 7 public final class Scm { 8 9 private final String url; 10 private final String revision; 11 12 private Scm(Builder builder) { 13 this.url = builder.url; 14 this.revision = builder.revision; 15 } 16 17 public static Scm create(String url, String revision) { 18 return builder().url(url).revision(revision).build(); 19 } 20 21 public static Builder builder() { 22 return new Builder(); 23 } 24 25 public static class Builder extends ValidatingBuilder<Scm> { 26 27 private String url; 28 private String revision; 29 30 public Builder url(String url) { 31 this.url = url; 32 return this; 33 } 34 35 public Builder revision(String revision) { 36 this.revision = revision; 37 return this; 38 } 39 40 @Override 41 public Scm build() { 42 return validate(new Scm(this)); 43 } 44 45 public String getUrl() { 46 return url; 47 } 48 49 public void setUrl(String url) { 50 this.url = url; 51 } 52 53 public String getRevision() { 54 return revision; 55 } 56 57 public void setRevision(String revision) { 58 this.revision = revision; 59 } 60 61 } 62 63 public String getUrl() { 64 return url; 65 } 66 67 public String getRevision() { 68 return revision; 69 } 70 }