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

org.apache.openejb.jee.EntityBean Maven / Gradle / Ivy

The newest version!
/**
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 org.apache.openejb.jee;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlID;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
import java.util.Set;
import java.util.Collection;
import java.util.Map;


/**
 * The entity-beanType declares an entity bean. The declaration
 * consists of:
 * 

* - an optional description * - an optional display name * - an optional icon element that contains a small and a large * icon file name * - a unique name assigned to the enterprise bean * in the deployment descriptor * - an optional mapped-name element that can be used to provide * vendor-specific deployment information such as the physical * jndi-name of the entity bean's remote home interface. This * element is not required to be supported by all implementations. * Any use of this element is non-portable. * - the names of the entity bean's remote home * and remote interfaces, if any * - the names of the entity bean's local home and local * interfaces, if any * - the entity bean's implementation class * - the optional entity bean's persistence management type. If * this element is not specified it is defaulted to Container. * - the entity bean's primary key class name * - an indication of the entity bean's reentrancy * - an optional specification of the * entity bean's cmp-version * - an optional specification of the entity bean's * abstract schema name * - an optional list of container-managed fields * - an optional specification of the primary key * field * - an optional declaration of the bean's environment * entries * - an optional declaration of the bean's EJB * references * - an optional declaration of the bean's local * EJB references * - an optional declaration of the bean's web * service references * - an optional declaration of the security role * references * - an optional declaration of the security identity * to be used for the execution of the bean's methods * - an optional declaration of the bean's * resource manager connection factory references * - an optional declaration of the bean's * resource environment references * - an optional declaration of the bean's message * destination references * - an optional set of query declarations * for finder and select methods for an entity * bean with cmp-version 2.x. *

* The optional abstract-schema-name element must be specified * for an entity bean with container-managed persistence and * cmp-version 2.x. *

* The optional primkey-field may be present in the descriptor * if the entity's persistence-type is Container. *

* The optional cmp-version element may be present in the * descriptor if the entity's persistence-type is Container. If * the persistence-type is Container and the cmp-version * element is not specified, its value defaults to 2.x. *

* The optional home and remote elements must be specified if * the entity bean cmp-version is 1.x. *

* The optional home and remote elements must be specified if * the entity bean has a remote home and remote interface. *

* The optional local-home and local elements must be specified * if the entity bean has a local home and local interface. *

* Either both the local-home and the local elements or both * the home and the remote elements must be specified. *

* The optional query elements must be present if the * persistence-type is Container and the cmp-version is 2.x and * query methods other than findByPrimaryKey have been defined * for the entity bean. *

* The other elements that are optional are "optional" in the * sense that they are omitted if the lists represented by them * are empty. *

* At least one cmp-field element must be present in the * descriptor if the entity's persistence-type is Container and * the cmp-version is 1.x, and none must not be present if the * entity's persistence-type is Bean. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "entity-beanType", propOrder = { "descriptions", "displayNames", "icon", "ejbName", "mappedName", "home", "remote", "localHome", "local", "ejbClass", "persistenceType", "primKeyClass", "reentrant", "cmpVersion", "abstractSchemaName", "cmpField", "primkeyField", "envEntry", "ejbRef", "ejbLocalRef", "serviceRef", "resourceRef", "resourceEnvRef", "messageDestinationRef", "persistenceContextRef", "persistenceUnitRef", "postConstruct", "preDestroy", "securityRoleRef", "securityIdentity", "query" }) public class EntityBean implements RemoteBean { @XmlTransient protected TextMap description = new TextMap(); @XmlTransient protected TextMap displayName = new TextMap(); @XmlElement(name = "icon", required = true) protected LocalCollection icon = new LocalCollection(); @XmlElement(name = "ejb-name", required = true) protected String ejbName; @XmlElement(name = "mapped-name") protected String mappedName; protected String home; protected String remote; @XmlElement(name = "local-home") protected String localHome; protected String local; @XmlElement(name = "ejb-class", required = true) protected String ejbClass; @XmlElement(name = "persistence-type", required = true) protected PersistenceType persistenceType; @XmlElement(name = "prim-key-class", required = true) protected String primKeyClass; @XmlJavaTypeAdapter(type = boolean.class, value = BooleanAdapter.class) @XmlElement(required = true) protected boolean reentrant; @XmlElement(name = "cmp-version", defaultValue = "2.x") protected CmpVersion cmpVersion; @XmlElement(name = "abstract-schema-name") protected String abstractSchemaName; @XmlElement(name = "cmp-field", required = true) protected List cmpField; @XmlElement(name = "primkey-field") protected String primkeyField; @XmlElement(name = "env-entry", required = true) protected KeyedCollection envEntry; @XmlElement(name = "ejb-ref", required = true) protected KeyedCollection ejbRef; @XmlElement(name = "ejb-local-ref", required = true) protected KeyedCollection ejbLocalRef; @XmlElement(name = "service-ref", required = true) protected KeyedCollection serviceRef; @XmlElement(name = "resource-ref", required = true) protected KeyedCollection resourceRef; @XmlElement(name = "resource-env-ref", required = true) protected KeyedCollection resourceEnvRef; @XmlElement(name = "message-destination-ref", required = true) protected KeyedCollection messageDestinationRef; @XmlElement(name = "persistence-context-ref", required = true) protected KeyedCollection persistenceContextRef; @XmlElement(name = "persistence-unit-ref", required = true) protected KeyedCollection persistenceUnitRef; @XmlElement(name = "post-construct", required = true) protected List postConstruct; @XmlElement(name = "pre-destroy", required = true) protected List preDestroy; @XmlElement(name = "security-role-ref", required = true) protected List securityRoleRef; @XmlElement(name = "security-identity") protected SecurityIdentity securityIdentity; @XmlElement(required = true) protected List query; @XmlAttribute @XmlJavaTypeAdapter(CollapsedStringAdapter.class) @XmlID protected String id; public EntityBean() { Set publicIds = JaxbJavaee.currentPublicId.get(); if (publicIds != null && publicIds.contains("-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN")) { cmpVersion = CmpVersion.CMP1; } else { cmpVersion = CmpVersion.CMP2; } } public String getJndiConsumerName() { return ejbName; } @XmlElement(name = "description", required = true) public Text[] getDescriptions() { return description.toArray(); } public void setDescriptions(Text[] text) { description.set(text); } public String getDescription() { return description.get(); } @XmlElement(name = "display-name", required = true) public Text[] getDisplayNames() { return displayName.toArray(); } public void setDisplayNames(Text[] text) { displayName.set(text); } public String getDisplayName() { return displayName.get(); } public Collection getIcons() { if (icon == null) { icon = new LocalCollection(); } return icon; } public Map getIconMap() { if (icon == null) { icon = new LocalCollection(); } return icon.toMap(); } public Icon getIcon() { return icon.getLocal(); } public String getEjbName() { return ejbName; } /** * The ejb-nameType specifies an enterprise bean's name. It is * used by ejb-name elements. This name is assigned by the * ejb-jar file producer to name the enterprise bean in the * ejb-jar file's deployment descriptor. The name must be * unique among the names of the enterprise beans in the same * ejb-jar file. *

* There is no architected relationship between the used * ejb-name in the deployment descriptor and the JNDI name that * the Deployer will assign to the enterprise bean's home. *

* The name for an entity bean must conform to the lexical * rules for an NMTOKEN. *

* Example: *

* EmployeeService */ public void setEjbName(String value) { this.ejbName = value; } public String getMappedName() { return mappedName; } public void setMappedName(String value) { this.mappedName = value; } public String getHome() { return home; } public void setHome(String value) { this.home = value; } public String getRemote() { return remote; } public void setRemote(String value) { this.remote = value; } public String getLocalHome() { return localHome; } public void setLocalHome(String value) { this.localHome = value; } public String getLocal() { return local; } public void setLocal(String value) { this.local = value; } public String getEjbClass() { return ejbClass; } public void setEjbClass(String value) { this.ejbClass = value; } public void setEjbClass(Class value) { this.ejbClass = value.getName(); } public PersistenceType getPersistenceType() { return persistenceType; } public void setPersistenceType(PersistenceType value) { this.persistenceType = value; } public String getPrimKeyClass() { return primKeyClass; } public void setPrimKeyClass(String value) { this.primKeyClass = value; } public boolean getReentrant() { return reentrant; } public void setReentrant(boolean value) { this.reentrant = value; } public CmpVersion getCmpVersion() { return cmpVersion; } public void setCmpVersion(CmpVersion value) { this.cmpVersion = value; } public String getAbstractSchemaName() { return abstractSchemaName; } public void setAbstractSchemaName(String value) { this.abstractSchemaName = value; } public List getCmpField() { if (cmpField == null) { cmpField = new ArrayList(); } return this.cmpField; } public void addCmpField(String fieldName) { if (fieldName == null) return; for (CmpField field : cmpField) { if (fieldName.equals(field.getFieldName())) return; } cmpField.add(new CmpField(fieldName)); } public String getPrimkeyField() { return primkeyField; } public void setPrimkeyField(String value) { this.primkeyField = value; } public Collection getEnvEntry() { if (envEntry == null) { envEntry = new KeyedCollection(); } return this.envEntry; } public Map getEnvEntryMap() { if (envEntry == null) { envEntry = new KeyedCollection(); } return this.envEntry.toMap(); } public Collection getEjbRef() { if (ejbRef == null) { ejbRef = new KeyedCollection(); } return this.ejbRef; } public Map getEjbRefMap() { if (ejbRef == null) { ejbRef = new KeyedCollection(); } return this.ejbRef.toMap(); } public Collection getEjbLocalRef() { if (ejbLocalRef == null) { ejbLocalRef = new KeyedCollection(); } return this.ejbLocalRef; } public Map getEjbLocalRefMap() { if (ejbLocalRef == null) { ejbLocalRef = new KeyedCollection(); } return this.ejbLocalRef.toMap(); } public Collection getServiceRef() { if (serviceRef == null) { serviceRef = new KeyedCollection(); } return this.serviceRef; } public Map getServiceRefMap() { if (serviceRef == null) { serviceRef = new KeyedCollection(); } return this.serviceRef.toMap(); } public Collection getResourceRef() { if (resourceRef == null) { resourceRef = new KeyedCollection(); } return this.resourceRef; } public Map getResourceRefMap() { if (resourceRef == null) { resourceRef = new KeyedCollection(); } return this.resourceRef.toMap(); } public Collection getResourceEnvRef() { if (resourceEnvRef == null) { resourceEnvRef = new KeyedCollection(); } return this.resourceEnvRef; } public Map getResourceEnvRefMap() { if (resourceEnvRef == null) { resourceEnvRef = new KeyedCollection(); } return this.resourceEnvRef.toMap(); } public Collection getMessageDestinationRef() { if (messageDestinationRef == null) { messageDestinationRef = new KeyedCollection(); } return this.messageDestinationRef; } public Map getMessageDestinationRefMap() { if (messageDestinationRef == null) { messageDestinationRef = new KeyedCollection(); } return this.messageDestinationRef.toMap(); } public Collection getPersistenceContextRef() { if (persistenceContextRef == null) { persistenceContextRef = new KeyedCollection(); } return this.persistenceContextRef; } public Map getPersistenceContextRefMap() { if (persistenceContextRef == null) { persistenceContextRef = new KeyedCollection(); } return this.persistenceContextRef.toMap(); } public Collection getPersistenceUnitRef() { if (persistenceUnitRef == null) { persistenceUnitRef = new KeyedCollection(); } return this.persistenceUnitRef; } public Map getPersistenceUnitRefMap() { if (persistenceUnitRef == null) { persistenceUnitRef = new KeyedCollection(); } return this.persistenceUnitRef.toMap(); } public List getPostConstruct() { if (postConstruct == null) { postConstruct = new ArrayList(); } return this.postConstruct; } public void addPostConstruct(String method){ assert ejbClass != null: "Set the ejbClass before calling this method"; getPostConstruct().add(new LifecycleCallback(ejbClass, method)); } public List getPreDestroy() { if (preDestroy == null) { preDestroy = new ArrayList(); } return this.preDestroy; } public void addPreDestroy(String method){ assert ejbClass != null: "Set the ejbClass before calling this method"; getPreDestroy().add(new LifecycleCallback(ejbClass, method)); } public List getSecurityRoleRef() { if (securityRoleRef == null) { securityRoleRef = new ArrayList(); } return this.securityRoleRef; } public Collection getBusinessLocal() { return Collections.emptySet(); } public Collection getBusinessRemote() { return Collections.emptySet(); } public SecurityIdentity getSecurityIdentity() { return securityIdentity; } public void setSecurityIdentity(SecurityIdentity value) { this.securityIdentity = value; } public List getQuery() { if (query == null) { query = new ArrayList(); } return this.query; } public String getId() { return id; } public void setId(String value) { this.id = value; } public List getAroundInvoke() { return Collections.emptyList(); } public void addAroundInvoke(String method){ } public TransactionType getTransactionType() { return TransactionType.CONTAINER; } public void setTransactionType(TransactionType type){ } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy