com.marand.thinkmed.medications.dto.TherapyDoseDto.java Source code

Java tutorial

Introduction

Here is the source code for com.marand.thinkmed.medications.dto.TherapyDoseDto.java

Source

/*
 * Copyright (c) 2010-2014 Marand d.o.o. (www.marand.com)
 *
 * This file is part of Think!Med Clinical Medication Management.
 *
 * Think!Med Clinical Medication Management is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Think!Med Clinical Medication Management is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with Think!Med Clinical Medication Management.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.marand.thinkmed.medications.dto;

import com.marand.thinkmed.api.core.data.object.DataTransferObject;
import com.marand.thinkmed.medications.TherapyDoseTypeEnum;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * @author Mitja Lapajne
 */
public class TherapyDoseDto extends DataTransferObject {
    private TherapyDoseTypeEnum therapyDoseTypeEnum;
    private Double numerator;
    private String numeratorUnit;
    private Double denominator;
    private String denominatorUnit;
    private Double secondaryNumerator;
    private String secondaryNumeratorUnit;
    private Double secondaryDenominator;
    private String secondaryDenominatorUnit;

    public Double getNumerator() {
        return numerator;
    }

    public void setNumerator(final Double numerator) {
        this.numerator = numerator;
    }

    public String getNumeratorUnit() {
        return numeratorUnit;
    }

    public void setNumeratorUnit(final String numeratorUnit) {
        this.numeratorUnit = numeratorUnit;
    }

    public Double getDenominator() {
        return denominator;
    }

    public void setDenominator(final Double denominator) {
        this.denominator = denominator;
    }

    public String getDenominatorUnit() {
        return denominatorUnit;
    }

    public void setDenominatorUnit(final String denominatorUnit) {
        this.denominatorUnit = denominatorUnit;
    }

    public Double getSecondaryNumerator() {
        return secondaryNumerator;
    }

    public void setSecondaryNumerator(final Double secondaryNumerator) {
        this.secondaryNumerator = secondaryNumerator;
    }

    public String getSecondaryNumeratorUnit() {
        return secondaryNumeratorUnit;
    }

    public void setSecondaryNumeratorUnit(final String secondaryNumeratorUnit) {
        this.secondaryNumeratorUnit = secondaryNumeratorUnit;
    }

    public Double getSecondaryDenominator() {
        return secondaryDenominator;
    }

    public void setSecondaryDenominator(final Double secondaryDenominator) {
        this.secondaryDenominator = secondaryDenominator;
    }

    public String getSecondaryDenominatorUnit() {
        return secondaryDenominatorUnit;
    }

    public void setSecondaryDenominatorUnit(final String secondaryDenominatorUnit) {
        this.secondaryDenominatorUnit = secondaryDenominatorUnit;
    }

    public TherapyDoseTypeEnum getTherapyDoseTypeEnum() {
        return therapyDoseTypeEnum;
    }

    public void setTherapyDoseTypeEnum(final TherapyDoseTypeEnum therapyDoseTypeEnum) {
        this.therapyDoseTypeEnum = therapyDoseTypeEnum;
    }

    @Override
    public boolean equals(final Object obj) {
        if (obj != null && obj instanceof TherapyDoseDto) {
            final TherapyDoseDto doseDto = (TherapyDoseDto) obj;
            final boolean compareDose = (doseDto.getTherapyDoseTypeEnum() == null && therapyDoseTypeEnum == null)
                    || (doseDto.getTherapyDoseTypeEnum() != null
                            && doseDto.getTherapyDoseTypeEnum() == therapyDoseTypeEnum);
            final boolean compareNumerator = (doseDto.getNumerator() == null && numerator == null)
                    || (doseDto.getNumerator() != null && numerator != null
                            && Math.abs(doseDto.getNumerator() - numerator) < 0.0001
                            && doseDto.getNumeratorUnit().equals(numeratorUnit));
            final boolean compareDenominator = (doseDto.getDenominator() == null && denominator == null)
                    || (doseDto.getDenominator() != null && denominator != null
                            && Math.abs(doseDto.getDenominator() - denominator) < 0.0001
                            && doseDto.getDenominatorUnit().equals(denominatorUnit));
            //return compareDose && compareNumerator && compareDenominator;
            return compareNumerator && compareDenominator;
        }
        return false;
    }

    @Override
    public int hashCode() {
        final StringBuilder buffer = new StringBuilder();
        buffer.append(therapyDoseTypeEnum);
        buffer.append(numerator);
        buffer.append(numeratorUnit);
        buffer.append(denominator);
        buffer.append(denominatorUnit);
        buffer.append(secondaryNumerator);
        buffer.append(secondaryNumeratorUnit);
        buffer.append(secondaryDenominator);
        buffer.append(secondaryDenominatorUnit);
        return buffer.toString().hashCode();
    }

    @Override
    protected void appendToString(final ToStringBuilder tsb) {
        tsb.append("numerator", numerator).append("numeratorUnit", numeratorUnit).append("denominator", denominator)
                .append("denominatorUnit", denominatorUnit).append("therapyDoseTypeEnum", therapyDoseTypeEnum)
                .append("secondaryNumerator", secondaryNumerator)
                .append("secondaryNumeratorUnit", secondaryNumeratorUnit)
                .append("secondaryDenominator", secondaryDenominator)
                .append("secondaryDenominatorUnit", secondaryDenominatorUnit);
    }
}