Business delegate pattern: Difference between revisions

Content deleted Content added
Components: MOS:HEAD
 
(4 intermediate revisions by 2 users not shown)
Line 9:
 
====Business delegate====
Control and protection are provided through business delegate which can have two types of constructuresstructures, without ID and with ID, where ID is a string version of the reference to a remote object such as EJBHome or EJBObject.<ref name=":o_cjp"/>
 
====Lookup service====
Business service is located by lookup service which is used by the business delegate. The implementation details of business service lookup is encapsulated by lookup service.<ref name=":o_cjp"/>
 
====Business Ssrviceservice====
This a business-tier component, such as an enterprise bean or a JMS component, which provides the required service to the client.<ref name=":o_cjp"/>
 
Line 50:
"Resource", homeClazz);
session = home.create();
} catch (ServiceLocatorException ex) {
// Translate Service Locator exception into
// application exception
throw new ResourceException(...);
} catch (CreateException ex) {
// Translate the Session create exception into
// application exception
throw new ResourceException(...);
} catch (RemoteException ex) {
// Translate the Remote exception into
// application exception
Line 65:
}
 
public BusinessDelegate(String id)
throws ResourceException {
Line 72 ⟶ 71:
}
 
public String getID() {
try {
Line 84 ⟶ 82:
throws ResourceException {
try {
session = (ResourceSession) ServiceLocator.getService(id);
ServiceLocator.getService(id);
} catch (RemoteException ex) {
// Translate the Remote exception into
Line 93 ⟶ 90:
}
 
public ResourceTO setCurrentResource(
String resourceId)
Line 111 ⟶ 107:
try {
return session.getResourceDetails();
} catch (RemoteException ex) {
// Translate the service exception into
// application exception
Line 122 ⟶ 118:
try {
session.setResourceDetails(vo);
} catch (RemoteException ex) {
throw new ResourceException(...);
}
Line 131 ⟶ 127:
try {
session.addResource(vo);
} catch(RemoteException ex) {
throw new ResourceException(...);
}
}
 
// all other proxy method to session bean
...
}
</syntaxhighlight><ref name=":o_cjp"/>
Remote interface for ResourceSession:
<syntaxhighlight lang="java">
public class ResourceDelegate {
 
// Remote reference for Session Facade
private ResourceSession session;
 
// Class for Session Facade's Home object
private static final Class homeClazz =
corepatterns.apps.psa.ejb.ResourceSessionHome.class;
 
// Default Constructor. Looks up home and connects
// to session by creating a new one
public ResourceDelegate() throws ResourceException {
try {
ResourceSessionHome home = (ResourceSessionHome)
ServiceLocator.getInstance().getHome(
"Resource", homeClazz);
session = home.create();
} catch(ServiceLocatorException ex) {
// Translate Service Locator exception into
// application exception
throw new ResourceException(...);
} catch(CreateException ex) {
// Translate the Session create exception into
// application exception
throw new ResourceException(...);
} catch(RemoteException ex) {
// Translate the Remote exception into
// application exception
throw new ResourceException(...);
}
}
 
public BusinessDelegate(String id)
throws ResourceException {
super();
reconnect(id);
}
 
public String getID() {
try {
return ServiceLocator.getId(session);
} catch (Exception e) {
// Throw an application exception
}
}
 
public void reconnect(String id)
throws ResourceException {
try {
session = (ResourceSession)
ServiceLocator.getService(id);
} catch (RemoteException ex) {
// Translate the Remote exception into
// application exception
throw new ResourceException(...);
}
}
 
public ResourceTO setCurrentResource(
String resourceId)
throws ResourceException {
try {
return session.setCurrentResource(resourceId);
} catch (RemoteException ex) {
// Translate the service exception into
// application exception
throw new ResourceException(...);
}
}
 
public ResourceTO getResourceDetails()
throws ResourceException {
 
try {
return session.getResourceDetails();
} catch(RemoteException ex) {
// Translate the service exception into
// application exception
throw new ResourceException(...);
}
}
 
public void setResourceDetails(ResourceTO vo)
throws ResourceException {
try {
session.setResourceDetails(vo);
} catch(RemoteException ex) {
throw new ResourceException(...);
}
}
 
public void addNewResource(ResourceTO vo)
throws ResourceException {
try {
session.addResource(vo);
} catch(RemoteException ex) {
throw new ResourceException(...);
}