1 // license-header java merge-point 2 // 3 // Attention: generated code (by Metafacade.vsl) - do not modify! 4 // 5 package org.andromda.cartridges.ejb3.metafacades; 6 7 import java.util.Collection; 8 import org.andromda.metafacades.uml.Role; 9 import org.andromda.metafacades.uml.ServiceOperation; 10 11 /** 12 * TODO: Model Documentation for org.andromda.cartridges.ejb3.metafacades.EJB3SessionOperationFacade 13 * 14 * Metafacade interface to be used by AndroMDA cartridges. 15 */ 16 public interface EJB3SessionOperationFacade 17 extends ServiceOperation 18 { 19 /** 20 * Indicates the metafacade type (used for metafacade mappings). 21 * 22 * @return boolean always <code>true</code> 23 */ 24 public boolean isEJB3SessionOperationFacadeMetaType(); 25 26 /** 27 * Return the flush mode to determine when the changes to the database are performed in the 28 * application transaction. This is typically set on a Stateful session bean where a 29 * transaction span several methods and the database update is only required upon completion of 30 * the final method. 31 * @return String 32 */ 33 public String getFlushMode(); 34 35 /** 36 * The method call for the implementation operation. 37 * @return String 38 */ 39 public String getImplementationCall(); 40 41 /** 42 * The name of the operation used within the service implementation that contains the core 43 * logic. 44 * @return String 45 */ 46 public String getImplementationName(); 47 48 /** 49 * The signature of the implementation operation. 50 * @return String 51 */ 52 public String getImplementationSignature(); 53 54 /** 55 * Returns the Collection of target elements from the service bean method where the target 56 * class has a stereotype of Interceptor. 57 * @return Collection 58 */ 59 public Collection getInterceptorReferences(); 60 61 /** 62 * Return only the Role object that do not have a Dependency stereotype of RunAs specified. 63 * @return Collection<Role> 64 */ 65 public Collection<Role> getNonRunAsRoles(); 66 67 /** 68 * Returns the comma separated list of roles allowd to execute this operation. This is defined 69 * by actor dependencies. 70 * @return String 71 */ 72 public String getRolesAllowed(); 73 74 /** 75 * Returns a parameter string for the org.jboss.seam.annotations.Factory annotation. Supported 76 * parameters: 77 * * value specifies the name of the context variable. If the method is a getter method, 78 * default to the JavaBeans property name. 79 * * scope specifies the scope that Seam should bind the returned value to. Only meaningful 80 * for factory methods which return a value. 81 * @return String 82 */ 83 public String getSeamBijectionFactoryParameters(); 84 85 /** 86 * Returns a parameter string for the org.jboss.seam.annotations.Begin annotation. Supported 87 * parameters: 88 * * ifOutcome specifies the JSF outcome or outcomes that result in a new long-running 89 * conversation context. 90 * * join determines the behavior when a long-running conversation is already in progress. If 91 * true, the context is propagated. If false, an exception is thrown. Default to false. This 92 * setting is ignored when nested=true is specified 93 * * nested specifies that a nested conversation should be started if a long-running 94 * conversation is already in progress. 95 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence 96 * contexts that are created during this conversation. 97 * * pageflow a process definition name of a jBPM process definition deployed via 98 * org.jboss.seam.core.jbpm.pageflowDefinitions. 99 * @return String 100 */ 101 public String getSeamConversationBeginParameters(); 102 103 /** 104 * Returns a parameter string for the org.jboss.seam.annotations.BeginTask annotation. Supported 105 * parameters: 106 * * taskIdParameter the name of a request parameter which holds the id of the task. Default 107 * to "taskId", which is also the default used by the Seam taskList JSF component. 108 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence 109 * contexts that are created during this conversation. 110 * @return String 111 */ 112 public String getSeamConversationBeginTaskParameters(); 113 114 /** 115 * Returns a parameter string for the org.jboss.seam.annotations.CreateProcess annotation. 116 * Supported parameters: 117 * * definition the name of the jBPM process definition deployed via 118 * org.jboss.seam.core.jbpm.processDefinitions. 119 * @return String 120 */ 121 public String getSeamConversationCreateProcessParameters(); 122 123 /** 124 * Returns a parameter string for the org.jboss.seam.annotations.End annotation. Supported 125 * parameters: 126 * * ifOutcome specifies the JSF outcome or outcomes that result in the end of the current 127 * long-running conversation. 128 * * beforeRedirect by default, the conversation will not actually be destroyed until after 129 * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should 130 * be destroyed at the end of the current request, and that the redirect will be processed in a 131 * new temporary conversation context. 132 * @return String 133 */ 134 public String getSeamConversationEndParameters(); 135 136 /** 137 * Returns a parameter string for the org.jboss.seam.annotations.EndTask annotation. Supported 138 * parameters: 139 * * transition the name of the jBPM transition to be triggered when ending the task. Defaults 140 * to the default transition. 141 * * ifOutcome specifies the JSF outcome or outcomes that result in the end of the task. 142 * * beforeRedirect by default, the conversation will not actually be destroyed until after 143 * any redirect has occurred. Setting beforeRedirect=true specifies that the conversation should 144 * be destroyed at the end of the current request, and that the redirect will be processed in a 145 * new temporary conversation context. 146 * @return String 147 */ 148 public String getSeamConversationEndTaskParameters(); 149 150 /** 151 * Returns a parameter string for the org.jboss.seam.annotations.ResumeProcess annotation. 152 * Supported parameters: 153 * * processIdParameter the name a request parameter holding the process id. Default to 154 * "processId". 155 * @return String 156 */ 157 public String getSeamConversationResumeProcessParameters(); 158 159 /** 160 * Returns a parameter string for the org.jboss.seam.annotations.StartTask annotation. Supported 161 * parameters: 162 * * taskIdParameter the name of a request parameter which holds the id of the task. Default 163 * to "taskId", which is also the default used by the Seam taskList JSF component. 164 * * flushMode set the flush mode of any Seam-managed Hibernate sessions or JPA persistence 165 * contexts that are created during this conversation. 166 * @return String 167 */ 168 public String getSeamConversationStartTaskParameters(); 169 170 /** 171 * Specifies that the method should be called when a component-driven event of the specified 172 * type occurs. 173 * @return String 174 */ 175 public String getSeamObserverEventName(); 176 177 /** 178 * Returns a parameter string for the org.jboss.seam.annotations.Rollback annotation. Supported 179 * parameters: 180 * * ifOutcome the JSF outcomes that cause a transaction rollback (no outcomes is interpreted 181 * to mean any outcome). 182 * @return String 183 */ 184 public String getSeamTransactionRollbackParameters(); 185 186 /** 187 * Returns the JSF outcome when validation fails, set using andromda.seam.validation.outcome. 188 * @return String 189 */ 190 public String getSeamValidationOutcome(); 191 192 /** 193 * Returns a string with parameters for the org.jboss.seam.annotations.WebRemote annotation. 194 * Supported parameters: 195 * exclude - Allows objects to be excluded from the result's object graph. Example: 196 * WebRemote(exclude="path.to.exclude") 197 * @return String 198 */ 199 public String getSeamWebRemoteParameters(); 200 201 /** 202 * Returns the operation test name 203 * @return String 204 */ 205 public String getTestName(); 206 207 /** 208 * Returns the session operation test signature used to generate the test method for the 209 * operation in the session bean test class. 210 * @return String 211 */ 212 public String getTestSignature(); 213 214 /** 215 * Gets the throws clause for this service or null if the operation doesn't have any exceptions. 216 * @return String 217 */ 218 public String getThrowsClause(); 219 220 /** 221 * Retrieves the throws clause allowing a comma separated list of exceptions to be passed in and 222 * appended to the list. 223 * @param initialExceptions String 224 * @return String 225 */ 226 public String getThrowsClause(String initialExceptions); 227 228 /** 229 * Gets the transaction type for this attribute (i.e. REQUIRED, etc) 230 * @return String 231 */ 232 public String getTransactionType(); 233 234 /** 235 * Returns a string representing whether this operation is local, remotely or both local and 236 * remotely accessible. This overrides the default from the session bean view type. 237 * @return String 238 */ 239 public String getViewType(); 240 241 /** 242 * True/false on whether or not this operation is an EJB session business operation. 243 * @return boolean 244 */ 245 public boolean isBusinessOperation(); 246 247 /** 248 * Returns true if NO roles are permitted to execute this operation in this bean. This is 249 * specified in the andromda.ejb.security.denyAll tagged value. 250 * @return boolean 251 */ 252 public boolean isDenyAll(); 253 254 /** 255 * Specifies whether to exclude the invocation of the class interceptors for the applied 256 * business method. 257 * @return boolean 258 */ 259 public boolean isExcludeClassInterceptors(); 260 261 /** 262 * Determines whether to exclude the invocation of the default interceptors for the applied 263 * business method. 264 * @return boolean 265 */ 266 public boolean isExcludeDefaultInterceptors(); 267 268 /** 269 * Returns true if this operation is marked with any of the lifecycle callback stereotypes like 270 * PostCostructs, PreDestroy etc. 271 * @return boolean 272 */ 273 public boolean isLifecycleCallback(); 274 275 /** 276 * Returns true if all roles are permitted to execute this operation. This is specified in the 277 * andromda.ejb.security.permitAll tagged value. It will override the 278 * andromda.ejb.security.rolesAllowed tagged value. 279 * @return boolean 280 */ 281 public boolean isPermitAll(); 282 283 /** 284 * Returns true if the associated operation has the <<PostActivate>> stereotype. 285 * This is only applicable for operations in a stateful session bean. 286 * NOTE: The method signature must return void and have no args. 287 * @return boolean 288 */ 289 public boolean isPostActivate(); 290 291 /** 292 * Returns true if the associated operation has the <<PostConstruct>> stereotype. 293 * NOTE: The method signature must return void and have no args. 294 * @return boolean 295 */ 296 public boolean isPostConstruct(); 297 298 /** 299 * Returns true if the associated operation has the <<PreDestroy>> stereotype. 300 * NOTE: The method signature must return void and have no args. 301 * @return boolean 302 */ 303 public boolean isPreDestroy(); 304 305 /** 306 * Returns true if the associated operation has the <<PrePassivate>> stereotype. 307 * This is only applicable for operations in a stateful session bean. 308 * NOTE: The method signature must return void and have no args. 309 * @return boolean 310 */ 311 public boolean isPrePassivate(); 312 313 /** 314 * Stereotype Asynchronous. Specifies that the method call is processed asynchronously. 315 * @return boolean 316 */ 317 public boolean isSeamAsynchronous(); 318 319 /** 320 * Returns true when stereotype <<Factory>> is set. When it is used on an operation which return 321 * void that operation will be used to initialize the value of the named context variable, when 322 * the context variable has no value. 323 * When it is used on an operation that returns a value then Seam should use that value to 324 * initialize the value of the named context variable, when the context variable has no value. 325 * The context variable is specified by tagged value andromda.seam.bijection.factory.value. If 326 * the method is a getter method, default to the JavaBeans property name. 327 * If no scope is explicitly specified by tagged value andromda.seam.bijection.factory.scope, 328 * the scope of the component with the Factory method is used (unless the component is 329 * stateless, in which case the EVENT context is used). 330 * @return boolean 331 */ 332 public boolean isSeamBijectionFactory(); 333 334 /** 335 * Returns true if the <<Begin>> stereotype is set. Specifies that a long-running conversation 336 * begins when this method returns a non-null outcome without exception. 337 * @return boolean 338 */ 339 public boolean isSeamConversationBegin(); 340 341 /** 342 * Returns true if stereotype <<BeginTask>> is set. Resumes work on an incomplete jBPM task. 343 * Specifies that a long-running conversation begins when this method returns a non-null outcome 344 * without exception. This conversation is associated with the jBPM task specified in the named 345 * request parameter. Within the context of this conversation, a business process context is 346 * also defined, for the business process instance of the task instance. 347 * @return boolean 348 */ 349 public boolean isSeamConversationBeginTask(); 350 351 /** 352 * Returns true if stereotype <<CreateProcess>> is set. Creates a new jBPM process instance when 353 * the method returns a non-null outcome without exception. The ProcessInstance object will be 354 * available in a context variable named processInstance. 355 * @return boolean 356 */ 357 public boolean isSeamConversationCreateProcess(); 358 359 /** 360 * Returns true if stereotype <<End>> is set. Specifies that a long-running conversation ends 361 * when this method returns a non-null outcome without exception. 362 * @return boolean 363 */ 364 public boolean isSeamConversationEnd(); 365 366 /** 367 * Returns true if stereotype <<EndTask>> is set and "Ends" a jBPM task. Specifies that a 368 * long-running conversation ends when this method returns a non-null outcome, and that the 369 * current task is complete. Triggers a jBPM transition. The actual transition triggered will be 370 * the default transition unless the application has called Transition.setName() on the built-in 371 * component named transition. 372 * @return boolean 373 */ 374 public boolean isSeamConversationEndTask(); 375 376 /** 377 * Returns true if stereotype <<ResumeProcess>> is set. Re-enters the scope of an existing jBPM 378 * process instance when the method returns a non-null outcome without exception. The 379 * ProcessInstance object will be available in a context variable named processInstance. 380 * @return boolean 381 */ 382 public boolean isSeamConversationResumeProcess(); 383 384 /** 385 * Returns true if stereotype <<StartTask>> is set. It "Starts" a jBPM task. Specifies that a 386 * long-running conversation begins when this method returns a non-null outcome without 387 * exception. This conversation is associated with the jBPM task specified in the named request 388 * parameter. Within the context of this conversation, a business process context is also 389 * defined, for the business process instance of the task instance. 390 * The jBPM TaskInstance will be available in a request context variable named taskInstance. The 391 * jPBM ProcessInstance will be available in a request context variable named processInstance. 392 * (Of course, these objects are available for injection via In.) 393 * @return boolean 394 */ 395 public boolean isSeamConversationStartTask(); 396 397 /** 398 * Returns true if the operation has the <<Create>> stereotype modelled. 399 * @return boolean 400 */ 401 public boolean isSeamLifecycleCreate(); 402 403 /** 404 * Returns true if the operation has the <<Destroy>> stereotype modelled. 405 * @return boolean 406 */ 407 public boolean isSeamLifecycleDestroy(); 408 409 /** 410 * True if the annotated method is a seam component-driven event observer. 411 * @return boolean 412 */ 413 public boolean isSeamObserver(); 414 415 /** 416 * Returns true if stereotype <<Rollback>> is set. If the outcome of the method matches any of 417 * the listed outcomes, or if no outcomes are listed, set the transaction to rollback only when 418 * the method completes. 419 * @return boolean 420 */ 421 public boolean isSeamTransactionRollback(); 422 423 /** 424 * Specifies that a JavaBean component should have a similar transactional behavior to the 425 * default behavior of a session bean component. ie. method invocations should take place in a 426 * transaction, and if no transaction exists when the method is called, a transaction will be 427 * started just for that method. This annotation may be applied at either class or method level. 428 * @return boolean 429 */ 430 public boolean isSeamTransactional(); 431 432 /** 433 * Returns true if the andromda.seam.validation.refreshEntities is modelled on the operation as 434 * true to indicate that any invalid entities in the managed state should be refreshed from the 435 * database when validation fails. 436 * @return boolean 437 */ 438 public boolean isSeamValidationRefreshEntities(); 439 440 /** 441 * Returns true if the <<Validator>> stereotype is modelled on this operation and the session 442 * bean is a Seam component. 443 * @return boolean 444 */ 445 public boolean isSeamValidationValidator(); 446 447 /** 448 * True if <<WebRemote>> stereotype is set. Indicates that the annotated method may be called 449 * from client-side JavaScript. 450 * @return boolean 451 */ 452 public boolean isSeamWebRemote(); 453 454 /** 455 * Returns true if the Timeout stereotype is modelled on the session bean operation. This will 456 * associate the operation as a timeout callback with the Timer Service. It does not setup the 457 * timer. 458 * @return boolean 459 */ 460 public boolean isTimeoutCallback(); 461 462 /** 463 * Return true if the view type of the operation is both after examing all aspects of the owner 464 * and operation. This is used to determine which interface to use in the service delegate. 465 * @return boolean 466 */ 467 public boolean isViewTypeAbsoluteBoth(); 468 469 /** 470 * Return true if the view type of the operation is local after examing all aspects of the owner 471 * and operation. This is used to determine if operation is included in local interface. 472 * @return boolean 473 */ 474 public boolean isViewTypeAbsoluteLocal(); 475 476 /** 477 * Return true if the view type of the operation is local after examing all aspects of the owner 478 * and operation. This is used to determine if operation is included in remote interface. 479 * @return boolean 480 */ 481 public boolean isViewTypeAbsoluteRemote(); 482 483 /** 484 * Returns true if the view type accessability for this operation is both local and remote. 485 * @return boolean 486 */ 487 public boolean isViewTypeBoth(); 488 489 /** 490 * Return true if the view type accessability for this operation is local. 491 * @return boolean 492 */ 493 public boolean isViewTypeLocal(); 494 495 /** 496 * Returns true if the view type accessability for the operation is remote. 497 * @return boolean 498 */ 499 public boolean isViewTypeRemote(); 500 501 /** 502 * Returns true if the operation view type was explicitly set to both using tagged value. 503 * @return boolean 504 */ 505 public boolean isViewTypeStrictlyBoth(); 506 507 /** 508 * Returns true if the operation view type was explicitly set to local view using tagged value. 509 * @return boolean 510 */ 511 public boolean isViewTypeStrictlyLocal(); 512 513 /** 514 * Returns true if the operation view type was explicitly set to remote view using tagged value. 515 * @return boolean 516 */ 517 public boolean isViewTypeStrictlyRemote(); 518 }