All Downloads are FREE. Search and download functionalities are using the official Maven repository.

bear.plugins.misc.Release Maven / Gradle / Ivy

The newest version!
package bear.plugins.misc;

import bear.task.TaskResult;
import bear.vcs.BranchInfo;
import bear.vcs.VcsLogInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.base.Optional;
import org.apache.commons.io.FilenameUtils;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import static com.google.common.base.Optional.absent;
import static com.google.common.base.Optional.fromNullable;

/**
* @author Andrey Chaschev [email protected]
*/
public class Release {
    public String path;

    @Nonnull
    protected Optional log;

    @Nonnull
    protected Optional branchInfo;

    public String status;

    public Release() {
    }

    public Release(Optional log, Optional branchInfo, String path, String status) {
        this.log = TaskResult.okOrAbsent(log);
        this.branchInfo = TaskResult.okOrAbsent(branchInfo);
        this.path = path;
        this.status = status;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Release{");
        sb.append("path='").append(path).append('\'');
        sb.append(", branchInfo=").append(branchInfo);
        sb.append(", status='").append(status).append('\'');
        sb.append('}');
        return sb.toString();
    }

    public String name() {
        return FilenameUtils.getName(path);
    }

    @JsonIgnore
    public boolean isActive() {
        return "active".equals(status);
    }

    public void setLog(VcsLogInfo log) {
        this.log = Optional.fromNullable(log);
    }

    public void setBranchInfo(BranchInfo branchInfo) {
        this.branchInfo = Optional.fromNullable(branchInfo);
    }

    @Nullable
    public VcsLogInfo getLog() {
        return log.orNull();
    }

    @Nullable
    public BranchInfo getBranchInfo() {
        return branchInfo.orNull();
    }

    @JsonIgnore
    public String getLastAuthor() {
        Optional optional = absent();

        if(log.isPresent()){
            optional = fromNullable(log.get().lastAuthor());
        }

        if(branchInfo.isPresent()){
            optional = optional.or(fromNullable(branchInfo.get().author));
        }

        return  optional.or("");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy