Java tutorial
/* * Copyright 2015 Kaiserpfalz EDV-Service, Roland T. Lichti * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package de.kaiserpfalzEdv.piracc.backend.db.master; import de.kaiserpfalzEdv.piracc.backend.db.DatabaseSchemaNames; import de.kaiserpfalzEdv.vaadin.backend.db.AuditedBaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import javax.persistence.Column; import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Inheritance; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.constraints.Size; import static javax.persistence.InheritanceType.SINGLE_TABLE; /** * @author klenkes * @version 2015Q1 * @since 12.09.15 09:08 */ @Entity @Table(name = "COMMUNICATIONADDRESSES", catalog = DatabaseSchemaNames.master) @Inheritance(strategy = SINGLE_TABLE) @DiscriminatorColumn(name = "dtype_", length = 20) public abstract class CommunicationAddress extends AuditedBaseEntity { private static final long serialVersionUID = 81029720579064221L; private CommunicationAddressType dtype; private String address; @Column(name = "address_", length = 512, nullable = false) @Size(min = 1, max = 512) public String getAddress() { return address; } public CommunicationAddress setAddress(String address) { this.address = address; return this; } @Transient public CommunicationAddressType getType() { return dtype; } @Column(name = "dtype_", length = 20, nullable = false, insertable = false, updatable = false) public String getInternalType() { return dtype.toString(); } public void setInternalType(final String type) { this.dtype = CommunicationAddressType.valueOf(type); } @Override public String toString() { return new ToStringBuilder(this).appendSuper(super.toString()).append("dtype", dtype) .append("address", address).toString(); } }