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

com.ibm.fhir.model.type.code.DocumentConfidentiality Maven / Gradle / Ivy

/*
 * (C) Copyright IBM Corp. 2019, 2021
 *
 * SPDX-License-Identifier: Apache-2.0
 */

package com.ibm.fhir.model.type.code;

import com.ibm.fhir.model.annotation.System;
import com.ibm.fhir.model.type.Code;
import com.ibm.fhir.model.type.Extension;
import com.ibm.fhir.model.type.String;

import java.util.Collection;
import java.util.Objects;

import javax.annotation.Generated;

@System("http://terminology.hl7.org/CodeSystem/v3-Confidentiality")
@Generated("com.ibm.fhir.tools.CodeGenerator")
public class DocumentConfidentiality extends Code {
    public static final DocumentConfidentiality U = DocumentConfidentiality.builder().value(Value.U).build();

    public static final DocumentConfidentiality L = DocumentConfidentiality.builder().value(Value.L).build();

    public static final DocumentConfidentiality M = DocumentConfidentiality.builder().value(Value.M).build();

    public static final DocumentConfidentiality N = DocumentConfidentiality.builder().value(Value.N).build();

    public static final DocumentConfidentiality R = DocumentConfidentiality.builder().value(Value.R).build();

    public static final DocumentConfidentiality V = DocumentConfidentiality.builder().value(Value.V).build();

    private volatile int hashCode;

    private DocumentConfidentiality(Builder builder) {
        super(builder);
    }

    /**
     * Get the value of this DocumentConfidentiality as an enum constant.
     * @deprecated replaced by {@link #getValueAsEnum()}
     */
    @Deprecated
    public ValueSet getValueAsEnumConstant() {
        return (value != null) ? ValueSet.from(value) : null;
    }

    /**
     * Get the value of this DocumentConfidentiality as an enum constant.
     */
    public Value getValueAsEnum() {
        return (value != null) ? Value.from(value) : null;
    }

    /**
     * Factory method for creating DocumentConfidentiality objects from a passed enum value.
     * @deprecated replaced by {@link #of(Value)}
     */
    @Deprecated
    public static DocumentConfidentiality of(ValueSet value) {
        switch (value) {
        case U:
            return U;
        case L:
            return L;
        case M:
            return M;
        case N:
            return N;
        case R:
            return R;
        case V:
            return V;
        default:
            throw new IllegalStateException(value.name());
        }
    }

    /**
     * Factory method for creating DocumentConfidentiality objects from a passed enum value.
     */
    public static DocumentConfidentiality of(Value value) {
        switch (value) {
        case U:
            return U;
        case L:
            return L;
        case M:
            return M;
        case N:
            return N;
        case R:
            return R;
        case V:
            return V;
        default:
            throw new IllegalStateException(value.name());
        }
    }

    /**
     * Factory method for creating DocumentConfidentiality objects from a passed string value.
     * 
     * @param value
     *     A string that matches one of the allowed code values
     * @throws IllegalArgumentException
     *     If the passed string cannot be parsed into an allowed code value
     */
    public static DocumentConfidentiality of(java.lang.String value) {
        return of(Value.from(value));
    }

    /**
     * Inherited factory method for creating DocumentConfidentiality objects from a passed string value.
     * 
     * @param value
     *     A string that matches one of the allowed code values
     * @throws IllegalArgumentException
     *     If the passed string cannot be parsed into an allowed code value
     */
    public static String string(java.lang.String value) {
        return of(Value.from(value));
    }

    /**
     * Inherited factory method for creating DocumentConfidentiality objects from a passed string value.
     * 
     * @param value
     *     A string that matches one of the allowed code values
     * @throws IllegalArgumentException
     *     If the passed string cannot be parsed into an allowed code value
     */
    public static Code code(java.lang.String value) {
        return of(Value.from(value));
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        DocumentConfidentiality other = (DocumentConfidentiality) obj;
        return Objects.equals(id, other.id) && Objects.equals(extension, other.extension) && Objects.equals(value, other.value);
    }

    @Override
    public int hashCode() {
        int result = hashCode;
        if (result == 0) {
            result = Objects.hash(id, extension, value);
            hashCode = result;
        }
        return result;
    }

    public Builder toBuilder() {
        return new Builder().from(this);
    }

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

    public static class Builder extends Code.Builder {
        private Builder() {
            super();
        }

        @Override
        public Builder id(java.lang.String id) {
            return (Builder) super.id(id);
        }

        @Override
        public Builder extension(Extension... extension) {
            return (Builder) super.extension(extension);
        }

        @Override
        public Builder extension(Collection extension) {
            return (Builder) super.extension(extension);
        }

        @Override
        public Builder value(java.lang.String value) {
            return (value != null) ? (Builder) super.value(Value.from(value).value()) : this;
        }

        /**
         * @deprecated replaced by  {@link #value(Value)}
         */
        @Deprecated
        public Builder value(ValueSet value) {
            return (value != null) ? (Builder) super.value(value.value()) : this;
        }

        /**
         * Primitive value for code
         * 
         * @param value
         *     An enum constant for DocumentConfidentiality
         * 
         * @return
         *     A reference to this Builder instance
         */
        public Builder value(Value value) {
            return (value != null) ? (Builder) super.value(value.value()) : this;
        }

        @Override
        public DocumentConfidentiality build() {
            DocumentConfidentiality documentConfidentiality = new DocumentConfidentiality(this);
            if (validating) {
                validate(documentConfidentiality);
            }
            return documentConfidentiality;
        }

        protected void validate(DocumentConfidentiality documentConfidentiality) {
            super.validate(documentConfidentiality);
        }

        protected Builder from(DocumentConfidentiality documentConfidentiality) {
            super.from(documentConfidentiality);
            return this;
        }
    }

    @Deprecated
    public enum ValueSet {
        U("U"),

        L("L"),

        M("M"),

        N("N"),

        R("R"),

        V("V");

        private final java.lang.String value;

        ValueSet(java.lang.String value) {
            this.value = value;
        }

        /**
         * @return
         *     The java.lang.String value of the code represented by this enum
         */
        public java.lang.String value() {
            return value;
        }

        /**
         * Factory method for creating DocumentConfidentiality.Value values from a passed string value.
         * 
         * @param value
         *     A string that matches one of the allowed code values
         * @throws IllegalArgumentException
         *     If the passed string cannot be parsed into an allowed code value
         */
        public static ValueSet from(java.lang.String value) {
            for (ValueSet c : ValueSet.values()) {
                if (c.value.equals(value)) {
                    return c;
                }
            }
            throw new IllegalArgumentException(value);
        }
    }

    public enum Value {
        U("U"),

        L("L"),

        M("M"),

        N("N"),

        R("R"),

        V("V");

        private final java.lang.String value;

        Value(java.lang.String value) {
            this.value = value;
        }

        /**
         * @return
         *     The java.lang.String value of the code represented by this enum
         */
        public java.lang.String value() {
            return value;
        }

        /**
         * Factory method for creating DocumentConfidentiality.Value values from a passed string value.
         * 
         * @param value
         *     A string that matches one of the allowed code values
         * @return
         *     The corresponding DocumentConfidentiality.Value or null if a null value was passed
         * @throws IllegalArgumentException
         *     If the passed string is not null and cannot be parsed into an allowed code value
         */
        public static Value from(java.lang.String value) {
            if (value == null) {
                return null;
            }
            switch (value) {
            case "U":
                return U;
            case "L":
                return L;
            case "M":
                return M;
            case "N":
                return N;
            case "R":
                return R;
            case "V":
                return V;
            default:
                throw new IllegalArgumentException(value);
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy