001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.geronimo.j2ee.deployment.annotation;
019
020 import java.util.List;
021
022 import org.apache.geronimo.xbeans.javaee.EjbLocalRefType;
023 import org.apache.geronimo.xbeans.javaee.EjbRefType;
024 import org.apache.geronimo.xbeans.javaee.EnvEntryType;
025 import org.apache.geronimo.xbeans.javaee.LifecycleCallbackType;
026 import org.apache.geronimo.xbeans.javaee.MessageDestinationRefType;
027 import org.apache.geronimo.xbeans.javaee.PersistenceContextRefType;
028 import org.apache.geronimo.xbeans.javaee.PersistenceUnitRefType;
029 import org.apache.geronimo.xbeans.javaee.ResourceEnvRefType;
030 import org.apache.geronimo.xbeans.javaee.ResourceRefType;
031 import org.apache.geronimo.xbeans.javaee.ServiceRefType;
032
033 /**
034 * Many of the classes generated from the JEE schemas have methods with identical signatures (see
035 * examples below). This interface can be used to encapsulate those methods so that the various
036 * AnnotationHelper classes can use the same code for multiple application types (e.g. WebAppType,
037 * ApplicationClientType, etc).
038 * <p/>
039 * <p><strong>Example(s):</strong>
040 * <pre>
041 * public interface ApplicationClientType extends org.apache.xmlbeans.XmlObject {
042 * org.apache.geronimo.xbeans.javaee.EnvEntryType[] getEnvEntryArray();
043 * org.apache.geronimo.xbeans.javaee.ResourceRefType[] getResourceRefArray();
044 * }
045 * <p/>
046 * public interface WebAppType extends org.apache.xmlbeans.XmlObject {
047 * org.apache.geronimo.xbeans.javaee.EnvEntryType[] getEnvEntryArray();
048 * org.apache.geronimo.xbeans.javaee.ResourceRefType[] getResourceRefArray();
049 * }
050 * </pre>
051 * <p/>
052 * <p><strong>Remaining ToDo(s):</strong>
053 * <ul>
054 * <li>None
055 * </ul>
056 *
057 * @version $Rev $Date
058 * @since Geronimo 2.0
059 */
060 public interface AnnotatedApp {
061
062 /**
063 * XmlBeans methods used for the @EJB, @EJBs annotations
064 */
065 EjbLocalRefType[] getEjbLocalRefArray();
066
067 EjbLocalRefType addNewEjbLocalRef();
068
069 EjbRefType[] getEjbRefArray();
070
071 EjbRefType addNewEjbRef();
072
073
074 /**
075 * XmlBeans methods used for the @Resource, @Resources annotations
076 */
077 EnvEntryType[] getEnvEntryArray();
078
079 EnvEntryType addNewEnvEntry();
080
081 ServiceRefType[] getServiceRefArray();
082
083 ServiceRefType addNewServiceRef();
084
085 ResourceRefType[] getResourceRefArray();
086
087 ResourceRefType addNewResourceRef();
088
089 MessageDestinationRefType[] getMessageDestinationRefArray();
090
091 MessageDestinationRefType addNewMessageDestinationRef();
092
093 ResourceEnvRefType[] getResourceEnvRefArray();
094
095 ResourceEnvRefType addNewResourceEnvRef();
096
097
098 /**
099 * ApplicationType getter in string format
100 *
101 * @return String representation of ApplicationType
102 */
103 String toString();
104
105
106 /**
107 * ambiguousRefs getter
108 * <p/>
109 * <p>There is no corresponding setter method. To add a new item to the list do this:
110 * <p/>
111 * <pre>
112 * getAmbiguousEjbRefs().add(ejbRef);
113 * </pre>
114 *
115 * @return ambiguousRefs list
116 */
117 List<EjbRefType> getAmbiguousEjbRefs();
118
119 LifecycleCallbackType[] getPostConstructArray();
120 LifecycleCallbackType addPostConstruct();
121
122 LifecycleCallbackType[] getPreDestroyArray();
123 LifecycleCallbackType addPreDestroy();
124
125 PersistenceContextRefType[] getPersistenceContextRefArray();
126 PersistenceContextRefType addNewPersistenceContextRef();
127
128 PersistenceUnitRefType[] getPersistenceUnitRefArray();
129 PersistenceUnitRefType addNewPersistenceUnitRef();
130
131 String getComponentType();
132 }