/* * Copyright (c) 1998-2011 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source 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, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Rodrigo Westrupp */ package com.caucho.amber.cfg; import com.caucho.vfs.Path; import java.util.HashMap; /** * Top <entity-mappings> tag in the orm.xml */ public class EntityMappingsConfig { private Path _root; // attributes private String _version; // elements private String _description; private PersistenceUnitMetaDataConfig _persistenceUnitMetaData; private String _package; private String _schema; private String _catalog; private AccessType _access; private HashMap<String, SequenceGeneratorConfig> _sequenceGeneratorMap = new HashMap<String, SequenceGeneratorConfig>(); private HashMap<String, TableGeneratorConfig> _tableGeneratorMap = new HashMap<String, TableGeneratorConfig>(); private HashMap<String, NamedQueryConfig> _namedQueryMap = new HashMap<String, NamedQueryConfig>(); private HashMap<String, NamedNativeQueryConfig> _namedNativeQueryMap = new HashMap<String, NamedNativeQueryConfig>(); private HashMap<String, SqlResultSetMappingConfig> _sqlResultSetMappingMap = new HashMap<String, SqlResultSetMappingConfig>(); private HashMap<String, MappedSuperclassConfig> _mappedSuperclassMap = new HashMap<String, MappedSuperclassConfig>(); private HashMap<String, EntityConfig> _entityMap = new HashMap<String, EntityConfig>(); private HashMap<String, EmbeddableConfig> _embeddableMap = new HashMap<String, EmbeddableConfig>(); public AccessType getAccess() { return _access; } public String getCatalog() { return _catalog; } public String getDescription() { return _description; } public String getPackage() { return _package; } public PersistenceUnitMetaDataConfig getPersistenceUnitMetaData() { return _persistenceUnitMetaData; } public void setPersistenceUnitMetaData(PersistenceUnitMetaDataConfig persistenceUnitMetaData) { _persistenceUnitMetaData = persistenceUnitMetaData; } public Path getRoot() { return _root; } public String getSchema() { return _schema; } public String getVersion() { return _version; } public void setAccess(String access) { _access = AccessType.valueOf(access); } public void setCatalog(String catalog) { _catalog = catalog; } public void setDescription(String description) { _description = description; } public void setPackage(String packageName) { _package = packageName; } public void setRoot(Path root) { _root = root; } public void setSchema(String schema) { _schema = schema; } public void setVersion(String version) { _version = version; } /** * Sets the schema location */ public void setSchemaLocation(String schema) { } /** * Adds a new <entity>. */ public void addEntity(EntityConfig entity) { String className = entity.getClassName(); addInternalClass(_entityMap, className, entity); } /** * Returns an entity config. */ public EntityConfig getEntityConfig(String name) { return _entityMap.get(name); } /** * Returns the entity map. */ public HashMap<String, EntityConfig> getEntityMap() { return _entityMap; } public void addSequenceGenerator(SequenceGeneratorConfig sequenceGenerator) { _sequenceGeneratorMap.put(sequenceGenerator.getName(), sequenceGenerator); } public SequenceGeneratorConfig getSequenceGenerator(String name) { return _sequenceGeneratorMap.get(name); } public HashMap<String, SequenceGeneratorConfig> getSequenceGeneratorMap() { return _sequenceGeneratorMap; } public void addTableGenerator(TableGeneratorConfig tableGenerator) { _tableGeneratorMap.put(tableGenerator.getName(), tableGenerator); } public TableGeneratorConfig getTableGenerator(String name) { return _tableGeneratorMap.get(name); } public HashMap<String, TableGeneratorConfig> getTableGeneratorMap() { return _tableGeneratorMap; } public void addNamedQuery(NamedQueryConfig namedQuery) { _namedQueryMap.put(namedQuery.getName(), namedQuery); } public NamedQueryConfig getNamedQuery(String name) { return _namedQueryMap.get(name); } public HashMap<String, NamedQueryConfig> getNamedQueryMap() { return _namedQueryMap; } public void addNamedNativeQuery(NamedNativeQueryConfig namedNativeQuery) { _namedNativeQueryMap.put(namedNativeQuery.getName(), namedNativeQuery); } public NamedNativeQueryConfig getNamedNativeQuery(String name) { return _namedNativeQueryMap.get(name); } public HashMap<String, NamedNativeQueryConfig> getNamedNativeQueryMap() { return _namedNativeQueryMap; } public void addSqlResultSetMapping(SqlResultSetMappingConfig sqlResultSetMapping) { _sqlResultSetMappingMap.put(sqlResultSetMapping.getName(), sqlResultSetMapping); } public SqlResultSetMappingConfig getSqlResultSetMapping(String name) { return _sqlResultSetMappingMap.get(name); } public HashMap<String, SqlResultSetMappingConfig> getSqlResultSetMappingMap() { return _sqlResultSetMappingMap; } public void addMappedSuperclass(MappedSuperclassConfig mappedSuperclass) { String className = mappedSuperclass.getClassName(); addInternalClass(_mappedSuperclassMap, className, mappedSuperclass); } public MappedSuperclassConfig getMappedSuperclass(String name) { return _mappedSuperclassMap.get(name); } public HashMap<String, MappedSuperclassConfig> getMappedSuperclassMap() { return _mappedSuperclassMap; } public void addEmbeddable(EmbeddableConfig embeddable) { String className = embeddable.getClassName(); addInternalClass(_embeddableMap, className, embeddable); } public EmbeddableConfig getEmbeddable(String name) { return _embeddableMap.get(name); } public HashMap<String, EmbeddableConfig> getEmbeddableMap() { return _embeddableMap; } private void addInternalClass(HashMap map, String className, Object config) { // jpa/0s2d, jpa/0ge7 if ((_package == null) || className.startsWith(_package + ".")) map.put(className, config); else map.put(_package + "." + className, config); } public String toString() { return _entityMap.toString(); } }