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

org.hibernate.boot.model.source.internal.OverriddenMappingDefaults Maven / Gradle / Ivy

There is a newer version: 6.5.0.CR2
Show newest version
/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or .
 */
package org.hibernate.boot.model.source.internal;

import org.hibernate.boot.spi.MappingDefaults;
import org.hibernate.cache.spi.access.AccessType;
import org.hibernate.internal.util.StringHelper;

/**
 * Represents a "nested level" in the mapping defaults stack.
 *
 * @author Steve Ebersole
 */
public class OverriddenMappingDefaults implements MappingDefaults {
	private final String implicitSchemaName;
	private final String implicitCatalogName;
	private final boolean implicitlyQuoteIdentifiers;
	private final String implicitIdColumnName;
	private final String implicitTenantIdColumnName;
	private final String implicitDiscriminatorColumnName;
	private final String implicitPackageName;
	private final boolean autoImportEnabled;
	private final String implicitCascadeStyleName;
	private final String implicitPropertyAccessorName;
	private boolean entitiesImplicitlyLazy;
	private boolean pluralAttributesImplicitlyLazy;
	private final AccessType implicitCacheAccessType;

	public OverriddenMappingDefaults(
			String implicitSchemaName,
			String implicitCatalogName,
			boolean implicitlyQuoteIdentifiers,
			String implicitIdColumnName,
			String implicitTenantIdColumnName,
			String implicitDiscriminatorColumnName,
			String implicitPackageName,
			boolean autoImportEnabled,
			String implicitCascadeStyleName,
			String implicitPropertyAccessorName,
			boolean entitiesImplicitlyLazy,
			boolean pluralAttributesImplicitlyLazy,
			AccessType implicitCacheAccessType) {
		this.implicitSchemaName = implicitSchemaName;
		this.implicitCatalogName = implicitCatalogName;
		this.implicitlyQuoteIdentifiers = implicitlyQuoteIdentifiers;
		this.implicitIdColumnName = implicitIdColumnName;
		this.implicitTenantIdColumnName = implicitTenantIdColumnName;
		this.implicitDiscriminatorColumnName = implicitDiscriminatorColumnName;
		this.implicitPackageName = implicitPackageName;
		this.autoImportEnabled = autoImportEnabled;
		this.implicitCascadeStyleName = implicitCascadeStyleName;
		this.implicitPropertyAccessorName = implicitPropertyAccessorName;
		this.entitiesImplicitlyLazy = entitiesImplicitlyLazy;
		this.pluralAttributesImplicitlyLazy = pluralAttributesImplicitlyLazy;
		this.implicitCacheAccessType = implicitCacheAccessType;
	}

	@Override
	public String getImplicitSchemaName() {
		return implicitSchemaName;
	}

	@Override
	public String getImplicitCatalogName() {
		return implicitCatalogName;
	}

	@Override
	public boolean shouldImplicitlyQuoteIdentifiers() {
		return implicitlyQuoteIdentifiers;
	}

	@Override
	public String getImplicitIdColumnName() {
		return implicitIdColumnName;
	}

	@Override
	public String getImplicitTenantIdColumnName() {
		return implicitTenantIdColumnName;
	}

	@Override
	public String getImplicitDiscriminatorColumnName() {
		return implicitDiscriminatorColumnName;
	}

	@Override
	public String getImplicitPackageName() {
		return implicitPackageName;
	}

	@Override
	public boolean isAutoImportEnabled() {
		return autoImportEnabled;
	}

	@Override
	public String getImplicitCascadeStyleName() {
		return implicitCascadeStyleName;
	}

	@Override
	public String getImplicitPropertyAccessorName() {
		return implicitPropertyAccessorName;
	}

	@Override
	public boolean areEntitiesImplicitlyLazy() {
		return entitiesImplicitlyLazy;
	}

	@Override
	public boolean areCollectionsImplicitlyLazy() {
		return pluralAttributesImplicitlyLazy;
	}

	@Override
	public AccessType getImplicitCacheAccessType() {
		return implicitCacheAccessType;
	}

	public static class Builder {
		private String implicitSchemaName;
		private String implicitCatalogName;
		private boolean implicitlyQuoteIdentifiers;
		private String implicitIdColumnName;
		private String implicitTenantIdColumnName;
		private String implicitDiscriminatorColumnName;
		private String implicitPackageName;
		private boolean autoImportEnabled;
		private String implicitCascadeStyleName;
		private String implicitPropertyAccessorName;
		private boolean entitiesImplicitlyLazy;
		private boolean pluralAttributesImplicitlyLazy;
		private AccessType implicitCacheAccessType;

		public Builder(MappingDefaults parentDefaults) {
			this.implicitSchemaName = parentDefaults.getImplicitSchemaName();
			this.implicitCatalogName = parentDefaults.getImplicitCatalogName();
			this.implicitlyQuoteIdentifiers = parentDefaults.shouldImplicitlyQuoteIdentifiers();
			this.implicitIdColumnName = parentDefaults.getImplicitIdColumnName();
			this.implicitTenantIdColumnName = parentDefaults.getImplicitTenantIdColumnName();
			this.implicitDiscriminatorColumnName = parentDefaults.getImplicitDiscriminatorColumnName();
			this.implicitPackageName = parentDefaults.getImplicitPackageName();
			this.autoImportEnabled = parentDefaults.isAutoImportEnabled();
			this.implicitCascadeStyleName = parentDefaults.getImplicitCascadeStyleName();
			this.implicitPropertyAccessorName = parentDefaults.getImplicitPropertyAccessorName();
			this.entitiesImplicitlyLazy = parentDefaults.areEntitiesImplicitlyLazy();
			this.pluralAttributesImplicitlyLazy = parentDefaults.areCollectionsImplicitlyLazy();
			this.implicitCacheAccessType = parentDefaults.getImplicitCacheAccessType();
		}

		public Builder setImplicitSchemaName(String implicitSchemaName) {
			if ( StringHelper.isNotEmpty( implicitSchemaName ) ) {
				this.implicitSchemaName = implicitSchemaName;
			}
			return this;
		}

		public Builder setImplicitCatalogName(String implicitCatalogName) {
			if ( StringHelper.isNotEmpty( implicitCatalogName ) ) {
				this.implicitCatalogName = implicitCatalogName;
			}
			return this;
		}

		public Builder setImplicitlyQuoteIdentifiers(boolean implicitlyQuoteIdentifiers) {
			this.implicitlyQuoteIdentifiers = implicitlyQuoteIdentifiers;
			return this;
		}

		public Builder setImplicitIdColumnName(String implicitIdColumnName) {
			if ( StringHelper.isNotEmpty( implicitIdColumnName ) ) {
				this.implicitIdColumnName = implicitIdColumnName;
			}
			return this;
		}

		public Builder setImplicitTenantIdColumnName(String implicitTenantIdColumnName) {
			if ( StringHelper.isNotEmpty( implicitTenantIdColumnName ) ) {
				this.implicitTenantIdColumnName = implicitTenantIdColumnName;
			}
			return this;
		}

		public Builder setImplicitDiscriminatorColumnName(String implicitDiscriminatorColumnName) {
			if ( StringHelper.isNotEmpty( implicitDiscriminatorColumnName ) ) {
				this.implicitDiscriminatorColumnName = implicitDiscriminatorColumnName;
			}
			return this;
		}

		public Builder setImplicitPackageName(String implicitPackageName) {
			if ( StringHelper.isNotEmpty( implicitPackageName ) ) {
				this.implicitPackageName = implicitPackageName;
			}
			return this;
		}

		public Builder setAutoImportEnabled(boolean autoImportEnabled) {
			this.autoImportEnabled = autoImportEnabled;
			return this;
		}

		public Builder setImplicitCascadeStyleName(String implicitCascadeStyleName) {
			if ( StringHelper.isNotEmpty( implicitCascadeStyleName ) ) {
				this.implicitCascadeStyleName = implicitCascadeStyleName;
			}
			return this;
		}

		public Builder setImplicitPropertyAccessorName(String implicitPropertyAccessorName) {
			if ( StringHelper.isNotEmpty( implicitPropertyAccessorName ) ) {
				this.implicitPropertyAccessorName = implicitPropertyAccessorName;
			}
			return this;
		}

		public Builder setEntitiesImplicitlyLazy(boolean entitiesImplicitlyLazy) {
			this.entitiesImplicitlyLazy = entitiesImplicitlyLazy;
			return this;
		}

		public Builder setPluralAttributesImplicitlyLazy(boolean pluralAttributesImplicitlyLazy) {
			this.pluralAttributesImplicitlyLazy = pluralAttributesImplicitlyLazy;
			return this;
		}

		public Builder setImplicitCacheAccessType(AccessType implicitCacheAccessType) {
			if ( implicitCacheAccessType != null ) {
				this.implicitCacheAccessType = implicitCacheAccessType;
			}
			return this;
		}

		public OverriddenMappingDefaults build() {
			return new OverriddenMappingDefaults(
					implicitSchemaName,
					implicitCatalogName,
					implicitlyQuoteIdentifiers,
					implicitIdColumnName,
					implicitTenantIdColumnName,
					implicitDiscriminatorColumnName,
					implicitPackageName,
					autoImportEnabled,
					implicitCascadeStyleName,
					implicitPropertyAccessorName,
					entitiesImplicitlyLazy,
					pluralAttributesImplicitlyLazy,
					implicitCacheAccessType
			);
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy