com.intuit.tank.project.ScriptGroupStep.java Source code

Java tutorial

Introduction

Here is the source code for com.intuit.tank.project.ScriptGroupStep.java

Source

package com.intuit.tank.project;

/*
 * #%L
 * Intuit Tank data model
 * %%
 * Copyright (C) 2011 - 2015 Intuit Inc.
 * %%
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * #L%
 */

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.hibernate.envers.Audited;

@Entity
@Audited
@Table(name = "script_group_step")
public class ScriptGroupStep extends BaseEntity {

    private static final long serialVersionUID = 1L;
    public static final String PROPERTY_SCRIPT = "script";

    @Column(name = "loop_count")
    private int loop = 1;

    @ManyToOne
    @JoinColumn(name = "script_group_id", updatable = false, insertable = false)
    private ScriptGroup scriptGroup;

    @OneToOne
    @JoinColumn(name = "script_id")
    private Script script;

    @Column(name = "position", insertable = false, updatable = false)
    private Integer position;

    /**
     * @return the position
     */
    public Integer getPosition() {
        return position;
    }

    /**
     * @param position
     *            the position to set
     */
    public void setPosition(Integer position) {
        this.position = position;
    }

    /**
     * @return the loop
     */
    public int getLoop() {
        return loop;
    }

    /**
     * @param loop
     *            the loop to set
     */
    public void setLoop(int loop) {
        this.loop = loop;
    }

    /**
     * @return the scriptGroup
     */
    public ScriptGroup getScriptGroup() {
        return scriptGroup;
    }

    /**
     * @param scriptGroup
     *            the scriptGroup to set
     */
    protected void setScriptGroup(ScriptGroup scriptGroup) {
        this.scriptGroup = scriptGroup;
    }

    /**
     * @param scriptGroup
     *            the scriptGroup to set
     */
    public void setParent(ScriptGroup scriptGroup) {
        this.scriptGroup = scriptGroup;
    }

    /**
     * @return the script
     */
    public Script getScript() {
        return script;
    }

    /**
     * @param script
     *            the script to set
     */
    public void setScript(Script script) {
        this.script = script;
    }

    /**
     * @{inheritDoc
     */
    @Override
    public String toString() {
        return new ToStringBuilder(this).append("id", getId()).append("loop", loop).toString();
    }

    /**
     * @{inheritDoc
     */
    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof ScriptGroupStep)) {
            return false;
        }
        ScriptGroupStep o = (ScriptGroupStep) obj;
        return new EqualsBuilder().append(o.getId(), getId()).isEquals();
    }

    /**
     * @{inheritDoc
     */
    @Override
    public int hashCode() {
        return new HashCodeBuilder(29, 45).append(getId()).toHashCode();
    }

    public static ScriptGroupStepBuilder builder() {
        return new ScriptGroupStepBuilder();
    }

    public static ScriptGroupStepBuilder builderFrom(ScriptGroupStep step) {
        return new ScriptGroupStepBuilder(step);
    }

    public static class ScriptGroupStepBuilder extends ScriptGroupStepBuilderBase<ScriptGroupStepBuilder> {

        private ScriptGroupStepBuilder() {
            super(new ScriptGroupStep());
        }

        private ScriptGroupStepBuilder(ScriptGroupStep step) {
            super(step);
        }

        public ScriptGroupStep build() {
            return getInstance();
        }
    }

    static class ScriptGroupStepBuilderBase<GeneratorT extends ScriptGroupStepBuilderBase<GeneratorT>> {
        private ScriptGroupStep instance;

        protected ScriptGroupStepBuilderBase(ScriptGroupStep aInstance) {
            instance = aInstance;
        }

        protected ScriptGroupStep getInstance() {
            return instance;
        }

        @SuppressWarnings("unchecked")
        public GeneratorT loop(int aValue) {
            instance.setLoop(aValue);

            return (GeneratorT) this;
        }

        @SuppressWarnings("unchecked")
        public GeneratorT scriptGroup(ScriptGroup aValue) {
            instance.setScriptGroup(aValue);

            return (GeneratorT) this;
        }

        @SuppressWarnings("unchecked")
        public GeneratorT script(Script aValue) {
            instance.setScript(aValue);

            return (GeneratorT) this;
        }
    }

}