blob: e7cb0dcfce656aa28a6572d1a17934d845a7b3ea [file] [log] [blame]
/*
* Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Guy Pelletier - initial API and implementation
package org.eclipse.persistence.internal.jpa.config.xml;
import java.util.ArrayList;
import org.eclipse.persistence.internal.jpa.config.MetadataImpl;
import org.eclipse.persistence.internal.jpa.config.columns.TenantDiscriminatorColumnImpl;
import org.eclipse.persistence.internal.jpa.config.listeners.EntityListenerImpl;
import org.eclipse.persistence.internal.jpa.config.mappings.AccessMethodsImpl;
import org.eclipse.persistence.internal.jpa.metadata.columns.TenantDiscriminatorColumnMetadata;
import org.eclipse.persistence.internal.jpa.metadata.listeners.EntityListenerMetadata;
import org.eclipse.persistence.internal.jpa.metadata.xml.XMLPersistenceUnitDefaults;
import org.eclipse.persistence.jpa.config.AccessMethods;
import org.eclipse.persistence.jpa.config.EntityListener;
import org.eclipse.persistence.jpa.config.PersistenceUnitDefaults;
import org.eclipse.persistence.jpa.config.TenantDiscriminatorColumn;
/**
* JPA scripting API implementation.
*
* @author Guy Pelletier
* @since EclipseLink 2.5.1
*/
public class PersistenceUnitDefaultsImpl extends MetadataImpl<XMLPersistenceUnitDefaults> implements PersistenceUnitDefaults {
public PersistenceUnitDefaultsImpl() {
super(new XMLPersistenceUnitDefaults());
getMetadata().setEntityListeners(new ArrayList<EntityListenerMetadata>());
getMetadata().setTenantDiscriminatorColumns(new ArrayList<TenantDiscriminatorColumnMetadata>());
}
@Override
public EntityListener addEntityListener() {
EntityListenerImpl listener = new EntityListenerImpl();
getMetadata().getEntityListeners().add(listener.getMetadata());
return listener;
}
@Override
public TenantDiscriminatorColumn addTenantDiscriminatorColumn() {
TenantDiscriminatorColumnImpl column = new TenantDiscriminatorColumnImpl();
getMetadata().getTenantDiscriminatorColumns().add(column.getMetadata());
return column;
}
@Override
public PersistenceUnitDefaults setAccess(String access) {
getMetadata().setAccess(access);
return this;
}
@Override
public AccessMethods setAccessMethods() {
AccessMethodsImpl accessMethods = new AccessMethodsImpl();
getMetadata().setAccessMethods(accessMethods.getMetadata());
return accessMethods;
}
@Override
public PersistenceUnitDefaults setCascadePersist(Boolean cascadePersist) {
getMetadata().setCascadePersist(cascadePersist);
return this;
}
@Override
public PersistenceUnitDefaults setCatalog(String catalog) {
getMetadata().setCatalog(catalog);
return this;
}
@Override
public PersistenceUnitDefaults setDelimitedIdentifiers(Boolean delimitedIdentifiers) {
getMetadata().setDelimitedIdentifiers(delimitedIdentifiers);
return this;
}
@Override
public PersistenceUnitDefaults setSchema(String schema) {
getMetadata().setSchema(schema);
return this;
}
}