// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/MutableSemVersion.java
// public interface MutableSemVersion extends SemVersion {
// 
//     @Nonnull
//     MutableSemVersion setMajor(int major);
// 
// 
//     @Nonnull
//     MutableSemVersion addMajor(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementMajor() {
//         return addMajor(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setMinor(int minor);
// 
// 
//     @Nonnull
//     MutableSemVersion addMinor(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementMinor() {
//         return addMinor(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setPatch(int patch);
// 
// 
//     @Nonnull
//     MutableSemVersion addPatch(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementPatch() {
//         return addPatch(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setPrereleaseTag(String prereleaseTag);
// 
// 
//     @Nonnull
//     MutableSemVersion setBuildMetadata(String buildMetadata);
// 
// 
//     @Nonnull
//     MutableSemVersion set(int major, int minor, int patch,
//                           @Nullable String prereleaseTag,
//                           @Nullable String buildMetadata);
// 
// 
//     @Nonnull
//     default MutableSemVersion set(int major, int minor, int patch,
//                                   @Nullable String prereleaseTag) {
//         return set(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion set(int major, int minor, int patch) {
//         return set(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion setFrom(SemVersion version) {
//         return set(version.getMajor(), version.getMinor(), version.getPatch(),
//                 version.getPrereleaseTag(), version.getBuildMetadata());
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion setFrom(String versionString) {
//         return setFrom(SemVersion.parse(versionString));
//     }
// 
// 
//     @Nonnull
//     default SemVersion toImmutable() {
//         return new ImmutableSemVersionImpl(
//                 getMajor(), getMinor(), getPatch(), getPrereleaseTag(), getBuildMetadata());
//     }
// }
// 
// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/SemVersion.java
// public interface SemVersion {
// 
//     int getMajor();
// 
//     int getMinor();
// 
//     int getPatch();
// 
//     @Nullable
//     String getPrereleaseTag();
// 
//     @Nullable
//     String getBuildMetadata();
// 
// 
//     @Nonnull
//     default MutableSemVersion cloneAsMutable() {
//         return new MutableSemVersionImpl()
//                 .setFrom(this);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch,
//                              @Nullable String prereleaseTag,
//                              @Nullable String buildMetadata) {
//         return new ImmutableSemVersionImpl(major, minor, patch, prereleaseTag, buildMetadata);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch, String prereleaseTag) {
//         return create(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch) {
//         return create(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion immutableCopyOf(SemVersion version) {
//         if (version instanceof ImmutableSemVersionImpl) {
//             return version;
// 
//         } else {
//             return create(version.getMajor(), version.getMinor(), version.getPatch(),
//                     version.getPrereleaseTag(), version.getBuildMetadata());
//         }
//     }
// 
// 
//     @Nonnull
//     static SemVersion parse(String input) {
//         return SemVersionParser.parse(input);
//     }
// }


import groovy.lang.Closure;
import groovy.lang.DelegatesTo;
import org.gradle.api.Action;
import org.gradle.util.ConfigureUtil;
import org.unbrokendome.gradle.plugins.gitversion.version.MutableSemVersion;
import org.unbrokendome.gradle.plugins.gitversion.version.SemVersion;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;
package org.unbrokendome.gradle.plugins.gitversion.core;





public interface RulesContainer {

    @Nonnull
    MutableSemVersion getBaseVersion();


    default void setBaseVersion(String versionString) {
// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/MutableSemVersion.java
// public interface MutableSemVersion extends SemVersion {
// 
//     @Nonnull
//     MutableSemVersion setMajor(int major);
// 
// 
//     @Nonnull
//     MutableSemVersion addMajor(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementMajor() {
//         return addMajor(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setMinor(int minor);
// 
// 
//     @Nonnull
//     MutableSemVersion addMinor(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementMinor() {
//         return addMinor(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setPatch(int patch);
// 
// 
//     @Nonnull
//     MutableSemVersion addPatch(int delta);
// 
// 
//     @Nonnull
//     default MutableSemVersion incrementPatch() {
//         return addPatch(1);
//     }
// 
// 
//     @Nonnull
//     MutableSemVersion setPrereleaseTag(String prereleaseTag);
// 
// 
//     @Nonnull
//     MutableSemVersion setBuildMetadata(String buildMetadata);
// 
// 
//     @Nonnull
//     MutableSemVersion set(int major, int minor, int patch,
//                           @Nullable String prereleaseTag,
//                           @Nullable String buildMetadata);
// 
// 
//     @Nonnull
//     default MutableSemVersion set(int major, int minor, int patch,
//                                   @Nullable String prereleaseTag) {
//         return set(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion set(int major, int minor, int patch) {
//         return set(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion setFrom(SemVersion version) {
//         return set(version.getMajor(), version.getMinor(), version.getPatch(),
//                 version.getPrereleaseTag(), version.getBuildMetadata());
//     }
// 
// 
//     @Nonnull
//     default MutableSemVersion setFrom(String versionString) {
//         return setFrom(SemVersion.parse(versionString));
//     }
// 
// 
//     @Nonnull
//     default SemVersion toImmutable() {
//         return new ImmutableSemVersionImpl(
//                 getMajor(), getMinor(), getPatch(), getPrereleaseTag(), getBuildMetadata());
//     }
// }
// 
// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/version/SemVersion.java
// public interface SemVersion {
// 
//     int getMajor();
// 
//     int getMinor();
// 
//     int getPatch();
// 
//     @Nullable
//     String getPrereleaseTag();
// 
//     @Nullable
//     String getBuildMetadata();
// 
// 
//     @Nonnull
//     default MutableSemVersion cloneAsMutable() {
//         return new MutableSemVersionImpl()
//                 .setFrom(this);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch,
//                              @Nullable String prereleaseTag,
//                              @Nullable String buildMetadata) {
//         return new ImmutableSemVersionImpl(major, minor, patch, prereleaseTag, buildMetadata);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch, String prereleaseTag) {
//         return create(major, minor, patch, prereleaseTag, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion create(int major, int minor, int patch) {
//         return create(major, minor, patch, null, null);
//     }
// 
// 
//     @Nonnull
//     static SemVersion immutableCopyOf(SemVersion version) {
//         if (version instanceof ImmutableSemVersionImpl) {
//             return version;
// 
//         } else {
//             return create(version.getMajor(), version.getMinor(), version.getPatch(),
//                     version.getPrereleaseTag(), version.getBuildMetadata());
//         }
//     }
// 
// 
//     @Nonnull
//     static SemVersion parse(String input) {
//         return SemVersionParser.parse(input);
//     }
// }


// Path: src/main/java/org/unbrokendome/gradle/plugins/gitversion/core/RulesContainer.java
import groovy.lang.Closure;
import groovy.lang.DelegatesTo;
import org.gradle.api.Action;
import org.gradle.util.ConfigureUtil;
import org.unbrokendome.gradle.plugins.gitversion.version.MutableSemVersion;
import org.unbrokendome.gradle.plugins.gitversion.version.SemVersion;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;

package org.unbrokendome.gradle.plugins.gitversion.core;





public interface RulesContainer {

    @Nonnull
    MutableSemVersion getBaseVersion();


    default void setBaseVersion(String versionString) {
        SemVersion version = SemVersion.parse(versionString);