001// license-header java merge-point 002// 003// Attention: generated code (by Metafacade.vsl) - do not modify! 004// 005package org.andromda.cartridges.ejb3.metafacades; 006 007import java.util.Collection; 008import java.util.List; 009import org.andromda.metafacades.uml.Role; 010import org.andromda.metafacades.uml.Service; 011 012/** 013 * Represents a Session EJB. 014 * 015 * Metafacade interface to be used by AndroMDA cartridges. 016 */ 017public interface EJB3SessionFacade 018 extends Service 019{ 020 /** 021 * Indicates the metafacade type (used for metafacade mappings). 022 * 023 * @return boolean always <code>true</code> 024 */ 025 public boolean isEJB3SessionFacadeMetaType(); 026 027 /** 028 * Filter out seam component attributes 029 * @param attributes Collection 030 * @return Collection 031 */ 032 public Collection filterSeamAttributes(Collection attributes); 033 034 /** 035 * All instanceAttributes for this session EJB. The list includes the instanceAttributes that 036 * are inherited from super classes. The list contains the inherited instanceAttributes first, 037 * followed by the instanceAttributes defined in this class. 038 * @return List 039 */ 040 public List getAllInstanceAttributes(); 041 042 /** 043 * Returns the comma separated list of attributes.<p/>This method can be used to generate 044 * argument lists for constructors and method calls. 045 * @param attributes Collection 046 * @param includeTypes boolean 047 * @param includeNames boolean 048 * @return String 049 */ 050 public String getAttributesAsList(Collection attributes, boolean includeTypes, boolean includeNames); 051 052 /** 053 * All "business" operations for this Session EJB. These are any operations that are NOT 054 * identified as create methods. 055 * @return Collection 056 */ 057 public Collection getBusinessOperations(); 058 059 /** 060 * Gets all constants for this session EJB. Constants are defined as static read-only attributes 061 * which do NOT have the <<EnvEntry>> stereotype. If 'follow' is true, then the inheritance 062 * hierarchy will be followed and we'll retrieve all constants from any super types as well. 063 * @param follow boolean 064 * @return Collection 065 */ 066 public Collection getConstants(boolean follow); 067 068 /** 069 * Gets create methods for this session EJB. If 'follow' is set to true, it will follow the 070 * inheritance hierarchy and retrieve those defined on any super types. 071 * @param follow boolean 072 * @return Collection 073 */ 074 public Collection getCreateMethods(boolean follow); 075 076 /** 077 * The name of the default exception to be generated for this service. 078 * @return String 079 */ 080 public String getDefaultExceptionName(); 081 082 /** 083 * Gets all env-entries for the specified session EJB. Env-entries are stored as static 084 * attributes on the entity and stereotyped as <<EnvEntry>>. If 'follow' is true, then the 085 * inheritance hierarchy will be followed and we'll retrieve all env-entries from any super 086 * types as well. 087 * @param follow boolean 088 * @return Collection 089 */ 090 public Collection getEnvironmentEntries(boolean follow); 091 092 /** 093 * The fully qualified class name of the default exception. 094 * @return String 095 */ 096 public String getFullyQualifiedDefaultExceptionName(); 097 098 /** 099 * Returns the fully qualified service base name. 100 * @return String 101 */ 102 public String getFullyQualifiedServiceBaseName(); 103 104 /** 105 * Returns the fully qualified service bean delegate class name. 106 * @return String 107 */ 108 public String getFullyQualifiedServiceDelegateName(); 109 110 /** 111 * Returns the fully qualified service bean implementation name. 112 * @return String 113 */ 114 public String getFullyQualifiedServiceImplementationName(); 115 116 /** 117 * The fully qualified parent business interface name for this session bean. 118 * @return String 119 */ 120 public String getFullyQualifiedServiceInterfaceName(); 121 122 /** 123 * Returns the fully qualified service bean listener name. 124 * @return String 125 */ 126 public String getFullyQualifiedServiceListenerName(); 127 128 /** 129 * Returns the fully qualified service bean local interface name. 130 * @return String 131 */ 132 public String getFullyQualifiedServiceLocalInterfaceName(); 133 134 /** 135 * Returns the fully qualified service bean name. 136 * @return String 137 */ 138 public String getFullyQualifiedServiceName(); 139 140 /** 141 * Returns the fully qualified service bean remote interface name. 142 * @return String 143 */ 144 public String getFullyQualifiedServiceRemoteInterfaceName(); 145 146 /** 147 * Returns the fully qualified service test class name 148 * @return String 149 */ 150 public String getFullyQualifiedServiceTestName(); 151 152 /** 153 * A String representing the name of a home interface for this entity EJB. 154 * @return String 155 */ 156 public String getHomeInterfaceName(); 157 158 /** 159 * Alll inherited instanceAttributes this session EJB. The instanceAttributes are grouped by 160 * the class that defines the instanceAttributes, with instanceAttributes from the most removed 161 * super class first. 162 * @return List 163 */ 164 public List getInheritedInstanceAttributes(); 165 166 /** 167 * Returns the Collection of target elements from the service bean class where the target class 168 * has a stereotype of Interceptor. 169 * @return Collection 170 */ 171 public Collection getInterceptorReferences(); 172 173 /** 174 * The JNDI name to which this session EJB local interface is bound. 175 * @return String 176 */ 177 public String getJndiNameLocal(); 178 179 /** 180 * Returns the JNDI name prefix for this session bean. This is set using the jndiNamePrefix 181 * namespace property and is commonly the ear file name excluding the extension for the EJB3 182 * cartridge. This prefix is applied whether the JNDI name is specified or not. 183 * If no manual JNDI name is specified, then the prefix is applied like so: 184 * jndiPrefix/EJBName/Remote 185 * If a manual JNDI name is specified, then the prefix is applied: 186 * jndiPrefix/ManualEJBJNDIName 187 * @return String 188 */ 189 public String getJndiNamePrefix(); 190 191 /** 192 * The JNDI name to which this session EJB remote interface is bound. 193 * @return String 194 */ 195 public String getJndiNameRemote(); 196 197 /** 198 * Returns the Collection of dependencies from the service bean class where the target class has 199 * a stereotype of MessageDriven. 200 * @return Collection 201 */ 202 public Collection getMessageDrivenReferences(); 203 204 /** 205 * Return only the Role object that do not have a Dependency stereotype of RunAs specified. 206 * @return Collection<Role> 207 */ 208 public Collection<Role> getNonRunAsRoles(); 209 210 /** 211 * Returns the EJB3 container engine (jboss, weblogic). 212 * @return String 213 */ 214 public String getPersistenceContainer(); 215 216 /** 217 * Returns the Collection of target objects from the service bean class that have a stereotype 218 * of PersistenceContext. 219 * @return Collection 220 */ 221 public Collection getPersistenceContextReferences(); 222 223 /** 224 * Specifies whether the persistence context for this EntityManager is transaction scoped or 225 * extended. 226 * @return String 227 */ 228 public String getPersistenceContextType(); 229 230 /** 231 * Returns the persistence context unit name for the injected EntityManger. This is only 232 * required if multiple persistence units exists. 233 * @return String 234 */ 235 public String getPersistenceContextUnitName(); 236 237 /** 238 * Returns the Collection of dependencies from the service bean that have stereotype of 239 * ResourceRef and the target has a stereotype of DataSource. 240 * @return Collection 241 */ 242 public Collection getResourceDataSourceReferences(); 243 244 /** 245 * Returns the Collection of dependencies from the service bean that have stereotype of 246 * ResourceRef and the target has a stereotype of UserTransaction. 247 * @return Collection 248 */ 249 public Collection getResourceUserTransactionReferences(); 250 251 /** 252 * Returns the comma separated list of roles allowd to execute all operations in this session 253 * bean. This is defined by actor dependencies on the session bean. 254 * @return String 255 */ 256 public String getRolesAllowed(); 257 258 /** 259 * Returns the run-as identity for the session bean which is used to establish the identity the 260 * bean will use when making calls. It does not affect the identity of the callers. 261 * @return String 262 */ 263 public String getRunAs(); 264 265 /** 266 * Tagged value andromda.seam.component.conversional.ifnotbegunoutcome. Specifies that a 267 * conversation scope component is conversational, meaning that no method of the component can 268 * be called unless a long-running conversation started by this component is active (unless the 269 * method would begin a new long-running conversation). 270 * @return String 271 */ 272 public String getSeamComponentConversionalIfNotBegunOutcome(); 273 274 /** 275 * Tagged value andromda.seam.component.intercept. Determines when Seam interceptors are active. 276 * The possible values are defined by the InterceptionType enumeration: ALWAYS, 277 * AFTER_RESTORE_VIEW, AFTER_UPDATE_MODEL_VALUES, INVOKE_APPLICATION, NEVER. 278 * When no interception type is explicitly specified, the default depends upon the component 279 * type. For entity beans, the default is NEVER. For session beans, message driven beans and 280 * JavaBeans, the default is ALWAYS. 281 * @return String 282 */ 283 public String getSeamComponentIntercept(); 284 285 /** 286 * Tagged value andromda.seam.component.jndiname. Specifies the JNDI name that Seam will use to 287 * look up the EJB component. If no JNDI name is explicitly specified, Seam will use the JNDI 288 * pattern specified by org.jboss.seam.core.init.jndiPattern. 289 * @return String 290 */ 291 public String getSeamComponentJndiName(); 292 293 /** 294 * Returns the Seam component name for the class. 295 * @return String 296 */ 297 public String getSeamComponentName(); 298 299 /** 300 * Tagged value andromda.seam.component.role.name. Allows a Seam component to be bound to 301 * multiple contexts variables. The Name/Scope annotations define a "default role". Each Role 302 * annotation defines an additional role. 303 * This tagged value specifies the context variable name. 304 * @return Collection 305 */ 306 public Collection getSeamComponentRoleNames(); 307 308 /** 309 * If multiple roles are specified (since a seam component can be bound to multiple context 310 * variables), then multiple roles are specified in the order the role names are specified. 311 * This is done by modelling the andromda.seam.component.role.scope tag with a comma separated 312 * list of scopes. 313 * @return Collection 314 */ 315 public Collection getSeamComponentRoleScopeTypes(); 316 317 /** 318 * Tagged value andromda.seam.component.scope. Defines the default context of the component. 319 * Possible values are 320 * EVENT 321 * PAGE 322 * CONVERSATION 323 * SESSION 324 * BUSINESS_PROCESS 325 * APPLICATION 326 * STATELESS 327 * If no scope specified, default depends on component type. 328 * @return String 329 */ 330 public String getSeamComponentScopeType(); 331 332 /** 333 * Returns a string with parameters for the Startup annotation. Supported parameters: 334 * depends ? specifies that the named components must be started first, if they are installed. 335 * Specified by tagged value andromda.seam.component.startup.depends 336 * @return String 337 */ 338 public String getSeamComponentStartupParameters(); 339 340 /** 341 * Tagged value andromda.seam.component.synchronized.timeout. Specifies that a component is 342 * accessed concurrently by multiple clients, and that Seam should serialize requests. If a 343 * request is not able to obtain its lock on the component in the given timeout period, an 344 * exception will be raised. 345 * @return String 346 */ 347 public String getSeamComponentSynchronizedTimeout(); 348 349 /** 350 * Returns the security domain value. Specified using the securityRealm namespace property or 351 * overridden in the andromda.ejb.security.realm tagged value. 352 * @return String 353 */ 354 public String getSecurityRealm(); 355 356 /** 357 * Returns the service bean base name. 358 * @return String 359 */ 360 public String getServiceBaseName(); 361 362 /** 363 * Return the service bean delegate class name. 364 * @return String 365 */ 366 public String getServiceDelegateName(); 367 368 /** 369 * Returns the service bean implementation name. 370 * @return String 371 */ 372 public String getServiceImplementationName(); 373 374 /** 375 * The parent business interface name for this session bean. 376 * @return String 377 */ 378 public String getServiceInterfaceName(); 379 380 /** 381 * Returns the service bean callback listener name. 382 * @return String 383 */ 384 public String getServiceListenerName(); 385 386 /** 387 * Returns the service bean local interface name. 388 * @return String 389 */ 390 public String getServiceLocalInterfaceName(); 391 392 /** 393 * Returns service bean name. 394 * @return String 395 */ 396 public String getServiceName(); 397 398 /** 399 * Returns the service bean remote interface name. 400 * @return String 401 */ 402 public String getServiceRemoteInterfaceName(); 403 404 /** 405 * Returns the service bean test class name 406 * @return String 407 */ 408 public String getServiceTestName(); 409 410 /** 411 * Returns the service test package name. This simply appends .test to the existing service 412 * class package. 413 * @return String 414 */ 415 public String getTestPackageName(); 416 417 /** 418 * Returns the transaction demarcation strategy for this bean. Typically, this will return BEAN 419 * for non default CONTAINER managed beans. Unless specified, this will return null indicating 420 * CONTAINER transaction demarcation. 421 * @return String 422 */ 423 public String getTransactionManagement(); 424 425 /** 426 * Gets the transaction type for this service (i.e. REQUIRED, etc) 427 * @return String 428 */ 429 public String getTransactionType(); 430 431 /** 432 * Returns the name of the type of this Session EJB, either Stateless or Stateful. 433 * @return String 434 */ 435 public String getType(); 436 437 /** 438 * A string indicating whether the Bean is a local or remotely accessable bean. 439 * @return String 440 */ 441 public String getViewType(); 442 443 /** 444 * Indicates whether or not a default service exception should be allowed. 445 * @return boolean 446 */ 447 public boolean isAllowDefaultServiceException(); 448 449 /** 450 * Determine whether clustering has been enabled. Either set application wide using 451 * enableClustering namespace property or via the andromda_service_clustered tagged value. 452 * @return boolean 453 */ 454 public boolean isClusteringEnabled(); 455 456 /** 457 * Returns true if NO roles are permitted to execute operations in this bean. This is specified 458 * in the andromda.ejb.security.denyAll tagged value. Typically, it will be overridden at the 459 * method level using the andromda.ejb.security.rolesAllowed tagged value. 460 * @return boolean 461 */ 462 public boolean isDenyAll(); 463 464 /** 465 * Determines whether to exclude the invocation of the default interceptors for all business 466 * method in the bean. 467 * @return boolean 468 */ 469 public boolean isExcludeDefaultInterceptors(); 470 471 /** 472 * Returns true if this session bean has the stereotype Listener. False otherwise. 473 * @return boolean 474 */ 475 public boolean isListenerEnabled(); 476 477 /** 478 * Returns true if all roles are permitted to execute all operations in this session bean. This 479 * is specified in the andromda.ejb.security.permitAll tagged value. It will override the 480 * andromda.ejb.security.rolesAllowed tagged value. 481 * @return boolean 482 */ 483 public boolean isPermitAll(); 484 485 /** 486 * Returns true if the persistence container is the JBoss engine. 487 * @return boolean 488 */ 489 public boolean isPersistenceContainerJboss(); 490 491 /** 492 * Returns true if the persistence container is the Weblogic engine. 493 * @return boolean 494 */ 495 public boolean isPersistenceContainerWeblogic(); 496 497 /** 498 * Returns true if this session bean has the <<Seam>> stereotype modelled indicating it is a 499 * Seam session bean component. 500 * @return boolean 501 */ 502 public boolean isSeamComponent(); 503 504 /** 505 * Tagged value andromda.seam.component.readonly. Specifies that a JavaBean component or 506 * component method does not require state replication at the end of the invocation. 507 * @return boolean 508 */ 509 public boolean isSeamComponentReadonly(); 510 511 /** 512 * Returns true if stereotype <<Startup>> is set. Specifies that an application scope component 513 * is started immediately at initialization time. This is mainly used for certain built-in 514 * components that bootstrap critical infrastructure such as JNDI, datasources, etc. 515 * @return boolean 516 */ 517 public boolean isSeamComponentStartup(); 518 519 /** 520 * Returns true if stereotype <<Transactional>> is set. Specifies that a JavaBean component 521 * should have a similar transactional behavior to the default behavior of a session bean 522 * component. ie. method invocations should take place in a transaction, and if no transaction 523 * exists when the method is called, a transaction will be started just for that method. This 524 * annotation may be applied at either class or method level. 525 * @return boolean 526 */ 527 public boolean isSeamComponentTransactional(); 528 529 /** 530 * Returns true if the security realm is specified indicating to generate the security 531 * infrastructure files. 532 * @return boolean 533 */ 534 public boolean isSecurityEnabled(); 535 536 /** 537 * True/false depending on whether or not this Session EJB is stateful or not. 538 * @return boolean 539 */ 540 public boolean isStateful(); 541 542 /** 543 * True/false depending on whether or not this Session EJB is stateless or not. 544 * @return boolean 545 */ 546 public boolean isStateless(); 547 548 /** 549 * Whether or not to allow a synthetic (auto generated) create method. 550 * @return boolean 551 */ 552 public boolean isSyntheticCreateMethodAllowed(); 553 554 /** 555 * Returns true if the transaction demarcation strategy is bean managedfor this bean. 556 * @return boolean 557 */ 558 public boolean isTransactionManagementBean(); 559 560 /** 561 * Return true if the view type accessability for this bean is both. 562 * @return boolean 563 */ 564 public boolean isViewTypeBoth(); 565 566 /** 567 * Return true if the view type accessability for this bean is local or both. 568 * Always generate a local interface is this session bean is a Seam component. 569 * @return boolean 570 */ 571 public boolean isViewTypeLocal(); 572 573 /** 574 * Return true if the view type accessability for this bean is remote or both. 575 * @return boolean 576 */ 577 public boolean isViewTypeRemote(); 578 579 /** 580 * Returns true if the bean view type was explicitly set to both view using tagged value or set 581 * as the app wide default. 582 * @return boolean 583 */ 584 public boolean isViewTypeStrictlyBoth(); 585 586 /** 587 * Returns true if the bean view type was explicitly set to local view using tagged value or set 588 * as the app wide default. 589 * @return boolean 590 */ 591 public boolean isViewTypeStrictlyLocal(); 592 593 /** 594 * Returns true if the bean view type was explicitly set to remote view using tagged value or 595 * set as the app wide default. 596 * @return boolean 597 */ 598 public boolean isViewTypeStrictlyRemote(); 599 600 /** 601 * Returns true if the session bean has either one of the following: 602 * 1. The <<WebService>> stereotype is modelled on the bean class; 603 * 2. The <<WebServiceOperation>> stereotype is modelled on at least one business method. 604 * @return boolean 605 */ 606 public boolean isWebServiceEnabled(); 607 608 /** 609 * Returns true if at least one of the session bean operations is marked with the 610 * WebServiceOperation stereotype. 611 * @return boolean 612 */ 613 public boolean isWebServiceOperationExists(); 614}