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

com.github.olaaronsson.process.impl.ProcessSubjectBase Maven / Gradle / Ivy

package com.github.olaaronsson.process.impl;

import java.io.Serializable;

import com.github.olaaronsson.process.interfaces.ProcessSubject;
import com.github.olaaronsson.process.internal.util.domain.BaseDomainObject;
import com.github.olaaronsson.process.internal.util.domain.ToStringBuilder;


public abstract class ProcessSubjectBase extends BaseDomainObject implements ProcessSubject, Serializable {

	protected Enum status;
	private Integer errorCode;
	private String processName;
	private static final String IDENTFIER = "id";
	private static final String SUBJECT_IDENTIFIER = "subjectIdentifier";

	public enum Status {
		PRE_PROCESS('£'), PROCESS_FINISHED('¤');
		private final Character sts;

		Status(Character sts) {
			this.sts = sts;
		}

		public Character getSts() {
			return sts;
		}
	}

	public void setStatus(Enum status) {
		this.status = status;
	}

	public void setProcessName(String processName) {
		this.processName = processName;
	}

	void setErrorCode(int errorCode) {
		this.errorCode = errorCode;
	}

	public int getErrorCode() {
		return errorCode == null ? 0 : errorCode;
	}

	boolean hasError() {
		return errorCode != null;
	}

	void clearError() {
		this.errorCode = null;
	}

	@Override
	public String doToString() {
		return new ToStringBuilder(IDENTFIER, id()).append(SUBJECT_IDENTIFIER, subjectIdentifier()).toString();
	}

	Enum getStatus() { // NOSONAR
		return status;
	}

	@Override
	public Enum getCurrentStatus() {
		return status;
	}

	@Override
	public String getCurrentProcess() {
		return processName;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy