Implementing a Builder Pattern (Not Necessarily Gof)

What I am looking for is some examples (ref. Joshua Bloch's Builder) on a plain java object such that:
// has a min. set of required properties and I can
// add any number of optional properties and then
// call a single build method to return me an instance
// of type Message
class Message {
private int id;
private String title;
private String author;
// optional
private String summary;
private double txCost;
public Message(int id, String titile, String author) {
// normal this.id = id , etc...
public Message summary(String summary) {
public Message txCost(double txCost) {
public Message build() {
// this actually returns the new instance with min and opt params
// Message m = Message(1, "Title","dk").summary("summa").build();
Thanks

I agree with dubwai that you wouldn't implement a build method in the class you have already created, that returns another instance of itself
I also don't think you should preface your request with "not necessarily GoF". I think J.B. was definitely suggesting a good application of the GoF builder pattern in order to make immutable objects elegant and relatively easier to deal with.
In the end, you are trying to satisfy at least 2 things. (I'm sure there are others)
1. Turn a mutable POJO into an immutable object.
2. Provide an elegant creation mechanism for initializing the object without having long winded, and type ambiguous construction.
Your example doesn't necessarily require the addition of a builder to make your Message immutable, but let me provide you the example anyway.
// has a min. set of required properties and I can
// add any number of optional properties and then
// call a single build method to return me an instance
// of type Message
public class Message {
    // make these properties "final". This makes them immutable
    private final int id;
    private final String title;
    private final String author;
// optional
   private final String summary;
   private final Double txCost; /*convert to immutable wrapper, allows simulation of
                                                       "optional", i.e. null means wasn't used in initialization */
/* cannot construct a message without the use of a builder */
private Message(Builder builder) {
     this.id = builder.id;
     this.title = builder.title;
     this.author = builder.author;
     this.summary = builder.summary;
     this.txCost = builder.txCost;
// normal this.id = id , etc...
// getters for properties
// end getters
   /* Note, the Builder is a static inner class, it is only relevant for creating instances of
      Message.
   public static class Builder{
    // short lived mutables
         private int id;
         private String title;
         private String author;
        private String summary;
        private Double txCost;
        /* you cannot have a Message without these required fields, so we force them
          in the constructor */
        public Builder(int id, String title, String author){
            this.id = id;
            this.title = title;
            this.author = author;
        /* I prefer the setter names, but the Builder behavior of returning the this object */
        public Builder setSummary(String summary){
            this.summary = summary;
            return this;
        public Builder setTxCost(double txCost){
             this.txCost = txCost; // note Java 1.5 autoboxing/unboxing
             return this;
        public Message build() {
             return new Message(this);
} Now you can create four different permutations of Message
Message basic = new Message.Builder(1,"A MIDSUMMER NIGHT'S DREAM", "WILLIAM SHAKESPEAR").build();
Message summary = new Message.Builder(2, "SOLARIS","STANISLAW LEM").setSummary("Great Sci-Fi book, bad movie").build();
Message txCosted = new Message.Builder(3, "FIGHT CLUB","CHUCK PALINIUK").setTxCost(30,000,000.00).build();
Message all = new Message.Builder(4, "BUILDER","DANIEL SHAW").setSummary("Check out the builder eclipse plug-in at sourceforge").setTxCost(0.0).build(); //Shameless self promotion

Similar Messages

  • Trying to implement the Builder pattern with inheritance

    This is just a bit long, but don't worry, it's very understandable.
    I'm applying the Builder pattern found in Effective Java (J. Bloch). The pattern is avaiable right here :
    http://books.google.fr/books?id=ka2VUBqHiWkC&lpg=PA15&ots=yXGmIjr3M2&dq=nutritionfacts%20builder%20java&pg=PA14
    My issue is due to the fact that I have to implement that pattern on an abstract class and its extensions. I have declared a Builder inside the base class, and the extensions specify their own extension of the base's Builder.
    The abstract base class is roughly this :
    public abstract class Effect extends Trigger implements Cloneable {
        protected Ability parent_ability;
        protected Targetable target;
        protected EffectBinder binder;
        protected Effect(){
        protected Effect(EffectBuilder parBuilder){
            parent_ability = parBuilder.parent_ability;
            target = parBuilder.target;
            binder = parBuilder.binder;
        public static class EffectBuilder {
            protected Ability parent_ability;
            protected Targetable target;
            protected EffectBinder binder;
            protected EffectBuilder() {}
            public EffectBuilder(Ability parParentAbility) {
                parent_ability = parParentAbility;
            public EffectBuilder target(Targetable parTarget)
            { target = parTarget; return this; }
            public EffectBuilder binder(EffectBinder parBinder)
            { binder = parBinder ; return this; }
        // etc.
    }And the following is one of its implementation :
    public class GainGoldEffect extends Effect {
        private int gold_gain;
        public GainGoldEffect(GainGoldEffectBuilder parBuilder) {
            super(parBuilder);
            gold_gain = parBuilder.gold_gain;
        public class GainGoldEffectBuilder extends EffectBuilder {
            private int gold_gain;
            public GainGoldEffectBuilder(int parGoldGain, Ability parParentAbility) {
                this.gold_gain = parGoldGain;
                super.parent_ability = parParentAbility;
            public GainGoldEffectBuilder goldGain(int parGoldGain)
            { gold_gain = parGoldGain; return this; }
            public GainGoldEffect build() {
                return new GainGoldEffect(this);
        // etc.
    }Effect requires 1 parameter to be correctly instantiated (parent_ability), and 2 others that are optional (target and binder). Implementing the Builder Pattern means that I won't have to rewrite specific construcors that cover all the combination of parameters of the Effect base class, plus their own parameter as an extension. I expect the gain to be quite huge, as there will be at least a hundred of Effects in this API.
    But... in the case of these 2 classes, when I'm trying to create the a GoldGainEffect like this :
    new GainGoldEffect.GainGoldEffectBuilder(1 , locAbility).goldGain(5);the compiler says "GainGoldEffect is not an enclosing class". Is there something wrong with the way I'm trying to extend the base Builder ?
    I need your help to understand this and find a solution.
    Thank you for reading.

    The GainGoldEffectBuilder class must be static.
    Otherwise a Builder would require a GainGoldEffect object to exist, which is backwards.

  • Builder pattern

    Hello,
    I am new to design patterns, but willing to learn. So I came here for an advice, as this would be my first attempt in implementing the builder pattern.
    The project: Create a java application that will generate and send via email 6 exports (Excel files) of different types, having their data filled from a database. The names of the exports, as well as other filters, will be read from an XML.
    My solution was to use the builder pattern, as it follows:
    Buider:
    public abstract class BuilderExport {
         protected Expor export;
         public Export getExport(){
              return export;
         public void createExport(){
              export = new Export();
         public abstract void createAntet();
         public abstract void createTableHead();
         public abstract void createTable();
         public abstract void setPath();
    ConcreteBuilder:
    public class BuilderExportImplementationA extends BuilderExport {
           @Override
         public void createAntet() {
              // TODO Auto-generated method stub
                    *export.setSheet() and export.setWorkbook()*
           @Override
         public void createTableHead() {
              // TODO Auto-generated method stub
                    *export.setSheet() and export.setWorkbook()*
           @Override
         public void createTable() {
              // TODO Auto-generated method stub
                    *export.setSheet() and export.setWorkbook()*
           @Override
         public void setPath() {
              // TODO Auto-generated method stub
                    *export.setPath()*
    Director:
    public class DirectorExport {
         private BuilderExport builder;
         public DirectorExport (BuilderExport b){
              this.builder= b;
         public Export getExport(){
              return builder.getExport();
         public void createExport(){
              builder.createExport();
              builder.createAntet();
              builder.createTableHead();
              builder.createTable();
                    builder.setPath();
    Product:
    public class Export {
         private Workbook workbook;
         private Sheet sheet;
            private String path;
            public Export(){
                     workbook = new HSSFWorkbook();
         public void setPath(String path) {
              this.path = path;
         public String getPath() {
              return path;
         public Workbook getWorkbook() {
              return workbook;
         public void setWorkbook(Workbook workbook) {
              this.workbook = workbook;
         public Sheet getSheet() {
              if (sheet == null)
                   sheet = workbook.createSheet();
              return sheet;
         public void setSheet(Sheet sheet) {
              this.sheet = sheet;
    Application:
            public static void main(String[] args) {
              BuilderExport builder = null;
              List<ExportFilters> listFilters;
              DirectorExport director;
              for (ExportFilters fe : listFilters) {
                   if (fe.getType().equals("A")) {
                        builder = new BuilderExportImplementationA ();
                   } else if (fe.getType().equals("B")) {
                   director= new DirectorExport (builder );
                   director.createExport();
         }Can someone please tell me if this design is well thought? I would appreciate any help you can give me.
    An other question: Keeping in mind that the XML with the requested filters is received as a param in the command line, how can I have access to the filters in the ConcreteBuilder classes? it is a good design to pass it as an argument to the constructor, like
    new BuilderExportImplementationA (ExportFilters fe)
    Also, the methods saveExport(String path) and sendExport(..) to which object will they belong?
    Thanks.
    ps: Please excuse my grammar, as english is not my native language.
    Edited by: user13806367 on Jan 21, 2011 2:19 AM

    Thank you both for your answers.
    Let me see if I understood well how this pattern works. So, if for example my Export class would be
    public class Export {
         private Antet antet;
         private TableBody body;
         private String location;
    }and I would use the builders only to construct Antet, TableBody and location, but the actual construction of the excel file would be done in the Export class, then the use of the builder pattern would be justified? This is just a scenario.
    As for the 'filters', i'm sorry for not explaining what they're all about, but as Jschell well presumed they are used to query the data from database. The problem here is that for each export I would have to construct a query from different tables, using different ordering. There are 5 or 6 tables that are always present in the query, but there are other 4 or 5 tables that may vary. The filters are read from an xml file, which will look something like that:
    <generation-export>
         <export type="km">
              <filtres>
                   <year>2011</year>
                   <month>09</month>
                   <statut>tous</statut>
                   <typ_p>PP</typ_p>
                   <division>NORD</division>
                   <pdr>YYY</pdr>
              </filtres>
         </export>
    </generation-export>Could you tell me what is the best way to construct those querys?
    Thanks again.
    Best regards.

  • Please Help PI Data Dependent Integration Builder Authorizations NOT Workng

    Dear Friends / Experts,
    I had spend many days and explored all Weblog  and links on this website and implemented all the steps required to acheive Data Dependent Integration Builder Security and I am not successful so far. I am just giving up now - Please Help Me ---
    As I said, I already read all the important Forum Links and SAP Web links and Followed Each and Every Step - service.sap.com/instguidesNW04 ® Installation ® SAP XI
    Security Requirement - Data Dependent/Object Level Authorizations in XI / PI
    In distributed teams or in a shared PI environment it might be necessary to limit authorization for a developer or a group of developers to only one Software Component or objects within a Software Component or to specific Configuration Objects.
    Our Environment - PI 7.0 SP 16
    Created a new role in the Integration Builder Design
    u2013Add Object Types of any Software Component and Namespace
    - Enable usage of Integration Builder roles in Exchange Profile
    Integration Builder u2013Integration Builder RepositoryParameter com.sap.aii.util.server.auth.activation to true
    Assign users to the newly created Integration Builder roles
    u2013Create dummy roles in Web AS ABAP, these roles are then available as groups in Web AS Java
    u2013Assign users to these roles
    u2013Assign the Integration Builder roles to the above groups in Web AS Java
    u2013Assign unrestricted roles to Super Users
    Please help - How to validate whether Data Dependent Authorizations are Activated?
    I am working with XI Developers and Basis Team and we did updated all the Required Exchange profile parameters.
    Per this Document - User Authorizations in Integration Builder Tools - Do we need to update the server.lockauth.activation in Exchange Profile. When We updated, It removed Edit Access from all XI Developers in PI
    In both the Integration Repository and the Integration Directory, you can define more detailed authorizations that restrict access to design and configuration objects.
    In both tools, you define such authorizations by choosing Tools ® User Roles from the menu bar. The authorization for this menu option is provided by role SAP_XI_ADMINISTRATOR_J2EE. Of course, this role should only be granted to a very restricted number of administrators. To activate these more detailed authorizations, you must set exchange profile parameter com.sap.aii.ib.server.lockauth.activation to true.
    The access authorizations themselves can be defined at the object-type level only (possibly restricted by a selection path), where you can specify each access action either individually as Create, Modify, or Delete for each object type, or as an overall access granting all three access actions.
    http://help.sap.com/saphelp_nw04/helpdata/en/f7/c2953fc405330ee10000000a114084/frameset.htm
    I was able to control display and maintain access from ABAP Roles, but completely failed to implement Integration Builder Security?
    Are there any ways to check Whether Data Dependent authorization or J2EE Authorizations are activated?
    Thanks a lot
    Satish

    Hello,
    so to give you status of our issue.
    We were able to export missing business component .
    But we also exported some interfaces after that and we had some return code 8, due  to objects still present in change list on quality system (seems after previous failed transports , the change list was not cleared completley...).
    So now we have checked that no objects is present in the change list of quality system and we plan to export again our devs on quality system.
    Hope after that no more return code 8 during imports and all devs transported correctly on quality system.
    Also recommending to read that, which is pretty good.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/7078566c-72e0-2e10-2b8a-e10fcf8e1a3d?overridelayout=t…
    Thanks all,
    S.N

  • How to find modules implemented and licensed but not used.

    Hi, one of our customer is in such a situation that they have no idea of which are the modules implemented. They have a big list of modules licensed but these are not necessarily be implemented. Is there a query to find out the same or any other option.
    Regards
    Santy

    Hi,
    Hi, one of our customer is in such a situation that they have no idea of which are the modules implemented. They have a big list of modules licensed but these are not necessarily be implemented. Is there a query to find out the same or any other option.Please see (Note: 420648.1 - How to Establish if a Product is Installed in e-Business Suite) and (Note: 443699.1 - How to check if certain Oracle Applications product/module is implemented?).
    Thanks,
    Hussein

  • Serializing a class that implements the Singleton pattern

    Hello,
    I am relatively new to Java and especially to serialization so the answer to this question might be obvious, but I could not make it work event though I have read the documentation and the article "Using XML Encoder" that was linked from the documentation.
    I have a class that implements the singleton pattern. It's definition is as follows:
    public class JCOption implements Serializable {
      private int x = 1;
      private static JCOption option = new JCOption();
      private JCOption() {}
      public static JCOption getOption() { return option; }
      public int getX() { return x; }
      public void setX(int x) { this.x = x; }
      public static void main(String args[]) throws IOException {
        JCOption opt = JCOption.getOption();
        opt.setX(10);
        XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Test.xml")));
        encoder.setPersistenceDelegate(opt.getClass(),  new JCOptionPersistenceDelegate());
        encoder.writeObject(opt);
        encoder.close();
    }Since this class does not fully comply to the JavaBeans conventions by not having a public no-argument constructor, I have create a class JCOptionPersistenceDelegate that extends the PersistenceDelegate. The implementation of the instantiate method is as follows:
      protected Expression instantiate(Object oldInstance, Encoder out) {
           Expression expression = new Expression(oldInstance, oldInstance.getClass(), "getOption", new Object[]{});
            return expression;
      }The problem is that the resulting XML file only contains the following lines:
        <java version="1.5.0_06" class="java.beans.XMLDecoder">
            <object class="JCOption" property="option"/>
        </java> so there is no trace of the property x.
    Thank you in advance for your answers.

    How about this:
    import java.beans.DefaultPersistenceDelegate;
    import java.beans.Encoder;
    import java.beans.Expression;
    import java.beans.Statement;
    import java.beans.XMLEncoder;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    public class JCOption {
        private int x = 1;
        private static JCOption option = new JCOption();
        private JCOption() {}
        public static JCOption getOption() { return option; }
        public int getX() { return x; }
        public void setX(int x) { this.x = x; }
        public static void main(String args[]) throws IOException {
          JCOption opt = JCOption.getOption();
          opt.setX(10);
          ByteArrayOutputStream os = new ByteArrayOutputStream();
          XMLEncoder encoder = new XMLEncoder( os );
          encoder.setPersistenceDelegate( opt.getClass(), new JCOptionPersistenceDelegate() );
          encoder.writeObject(opt);
          encoder.close();
          System.out.println( os.toString() );
    class JCOptionPersistenceDelegate extends DefaultPersistenceDelegate {
        protected Expression instantiate(Object oldInstance, Encoder out) {
            return new Expression(
                    oldInstance,
                    oldInstance.getClass(),
                    "getOption",
                    new Object[]{} );
        protected void initialize( Class<?> type, Object oldInstance, Object newInstance, Encoder out ) {
            super.initialize( type, oldInstance, newInstance, out );
            JCOption q = (JCOption)oldInstance;
            out.writeStatement( new Statement( oldInstance, "setX", new Object[] { q.getX() } ) );
    }   Output:
    <?xml version="1.0" encoding="UTF-8"?>
    <java version="1.5.0_06" class="java.beans.XMLDecoder">
    <object class="JCOption" property="option">
      <void property="x">
       <int>10</int>
      </void>
    </object>
    </java>

  • How to implement cache-aside pattern in coherence.

    Hi,
    Is there a way to implement Cache-Aside pattern in Coherence. ?!

    We use cache aside in the following way:
    At startup ALL data ftom a database is loaded to a near cache (with unlimited non evicting back tear). All updates in the application then goes to both the cache and in our case TWO databases (one for the new system (the one we are loading from) and one belonging to our legacy environment (a hierarchical database!) that will be phased out over several years time) using XA transactions.
    The new database is only used for loading the cache and for persistence. The legacy database is only updated by this XA-transaction but is also read by a bunch of legacy applications. Our application is extremly read heavy (like three orders of magnitude difference) so the relativly poor performance of XA is not a problem.
    We use the cache to not only speed/scale out reads (that are helped by both the front and back cache) but also queries (that are handled by the back cache rier). Since the back cache tier contains all data our query results will be "complete" (i.e. give the same result as if answered by any of the databases) and we can therefore off-lload the databases significantly and that way postpone the point where they becomes a scalability bottleneck (we also dramatically reduce the number of CPUs and licenses for the database saving a lot of moiney).
    We can not use "write though" in this case since this results in a bulk update to be partitioned into several database transactions (performed by the various back cache nodes) that may suceed or fail individually (due to database contraints checks) of each other and that is not acceptable in this case (a bulk update must either completly fail or succeed). Nor can we use "read through" (with load on demand) since we need to keep trhe full data base content in the cache - if we did not we would need to send queries to the database instead of the cache loosing the performance / scalability improvement that we need.
    Now one can of course say that this is not a "normal cache" scenario since we load ALL data to the "back cache" but I anyhow wanted to mention it as one case where "cache aside" makes sense (or at least it worked for us) :-)
    /Magnus

  • Difference between Builder Pattern and Factory Pattern

    difference between Builder Pattern and Factory Pattern

    You are right Both of these patterns are creational design patterns Purpose of these two patterns is very different as Abstract Factory Patterns (which is commonly known as Factory pattern ) is used to create a object in a scenario when you have a product & there is a possibility of many vandors providing implementation for it. So it is good to come up with a abastract factory which provides create method for the product. Each vendor can implement you abstract factory & provide a concrete implementation which will return a product of Vendor implementation.
    Builder patter is used in case you have a very complex object creation process involved & you realy want to abstract the client from doing all those complex steps. In such situation you create a builder class which takes care of all complex steps & client just needs to use this builder class to create your complex object.
    Hope it clarifies your doubts.

  • Error: Integration Builder can not start

    Hi,
    Before installing SP 12 XI worked fine.
    But while deploying with the SDM I got an error when I want to deploy this file "SAPXITOOL12P_5-20000274.SCA".
    So when I start the intergration Builder, Web Start shows an error like "Integration Builder can not start?
    Can anybody help me??
    Thanks.
    Regards
    Stefan

    Hi Shravan,
    it is a really big one:
    Starting Deployment of com.sap.xi.rwb
    Aborted: development component 'com.sap.xi.rwb'/'sap.com'/'SAP
    AG'/'3.0.1220050720142859.0000':
    Caught exception during application deployment from SAP J2EE Engine's
    deploy service:
    java.rmi.RemoteException: Cannot deploy application
    sap.com/com.sap.xi.rwb.. Reason: Errors while
    compiling:D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:13:
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 is not abstract
    and does not override abstract method getLoggingAttributes
    (java.lang.String) in com.sap.aii.mdt.server.MessageMonitoring
    public class MessageMonitoringObjectImpl10 extends
    com.sap.engine.services.ejb.session.stateful.StatefulEJBObjectImplFP
    implements MessageMonitoring {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1112: setRwb(boolean) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 cannot implement
    setRwb(boolean) in com.sap.aii.mdt.server.MessageMonitoring; overridden
    method does not throw
    com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setRwb(boolean arg1) throws java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:412: setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 cannot implement
    setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoring; overridden method does not
    throw com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setDomain(java.lang.String arg1) throws
    java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:740: getMessageData(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageData( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:786: cannot resolve symbol
    symbol : method getMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1092: getLoggingAttributes(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getLoggingAttributes( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1217: cannot resolve symbol
    symbol : method hasVersions ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).hasVersions();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1259: cannot resolve symbol
    symbol : method getMessageVersions (java.lang.String,boolean)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageVersions( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1305: cannot resolve symbol
    symbol : method getPureMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getPureMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1350: cannot resolve symbol
    symbol : method getVersionDetailsUrl (java.lang.String)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getVersionDetailsUrl( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1392: cannot resolve symbol
    symbol : method getFeedback ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getFeedback();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1432: cannot resolve symbol
    symbol : method setMaxMessages (int)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).setMaxMessages( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/IntegrationEngineHomeImpl10.java:11:
    com.sap.aii.mdt.server.IntegrationEngineHomeImpl10 is not abstract and
    does not override abstract method create() in
    com.sap.aii.mdt.server.MessageMonitoringHome
    public class IntegrationEngineHomeImpl10 extends
    com.sap.engine.services.ejb.session.EJBHomeImpl implements
    IntegrationEngineHome {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:13:
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 is not abstract
    and does not override abstract method getLoggingAttributes
    (java.lang.String) in com.sap.aii.mdt.server.MessageMonitoring
    public class MessageMonitoringObjectImpl11 extends
    com.sap.engine.services.ejb.session.stateful.StatefulEJBObjectImplFP
    implements MessageMonitoring {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1112: setRwb(boolean) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 cannot implement
    setRwb(boolean) in com.sap.aii.mdt.server.MessageMonitoring; overridden
    method does not throw
    com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setRwb(boolean arg1) throws java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:412: setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 cannot implement
    setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoring; overridden method does not
    throw com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setDomain(java.lang.String arg1) throws
    java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:740: getMessageData(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getMessageData( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:786: cannot resolve symbol
    symbol : method getMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1092: getLoggingAttributes(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getLoggingAttributes( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1217: cannot resolve symbol
    symbol : method hasVersions ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).hasVersions();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1305: cannot resolve symbol
    symbol : method getPureMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getPureMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1392: cannot resolve symbol
    symbol : method getFeedback ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getFeedback();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1432: cannot resolve symbol
    symbol : method setMaxMessages (int)
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).setMaxMessages( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/IntegrationServerHomeImpl10.java:11:
    com.sap.aii.mdt.server.IntegrationServerHomeImpl10 is not abstract and
    does not override abstract method create() in
    com.sap.aii.mdt.server.MessageMonitoringHome
    public class IntegrationServerHomeImpl10 extends
    com.sap.engine.services.ejb.session.EJBHomeImpl implements
    IntegrationServerHome {
    ^
    24 errors
    ; nested exception is:
    com.sap.engine.services.ejb.exceptions.deployment.EJBFileGenerat
    ionException: Errors while
    compiling:D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:13:
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 is not abstract
    and does not override abstract method getLoggingAttributes
    (java.lang.String) in com.sap.aii.mdt.server.MessageMonitoring
    public class MessageMonitoringObjectImpl10 extends
    com.sap.engine.services.ejb.session.stateful.StatefulEJBObjectImplFP
    implements MessageMonitoring {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1112: setRwb(boolean) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 cannot implement
    setRwb(boolean) in com.sap.aii.mdt.server.MessageMonitoring; overridden
    method does not throw
    com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setRwb(boolean arg1) throws java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:412: setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl10 cannot implement
    setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoring; overridden method does not
    throw com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setDomain(java.lang.String arg1) throws
    java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:740: getMessageData(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageData( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:786: cannot resolve symbol
    symbol : method getMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1092: getLoggingAttributes(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getLoggingAttributes( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1217: cannot resolve symbol
    symbol : method hasVersions ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).hasVersions();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1259: cannot resolve symbol
    symbol : method getMessageVersions (java.lang.String,boolean)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getMessageVersions( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1305: cannot resolve symbol
    symbol : method getPureMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getPureMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1350: cannot resolve symbol
    symbol : method getVersionDetailsUrl (java.lang.String)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getVersionDetailsUrl( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1392: cannot resolve symbol
    symbol : method getFeedback ()
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean result = ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).getFeedback();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl10.java:1432: cannot resolve symbol
    symbol : method setMaxMessages (int)
    location: class
    com.sap.aii.mdt.server.integrationengine.IntegrationEngineMonitoringBean ((IntegrationEngineMonitoringBean)ctx.getInstance
    ()).setMaxMessages( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/IntegrationEngineHomeImpl10.java:11:
    com.sap.aii.mdt.server.IntegrationEngineHomeImpl10 is not abstract and
    does not override abstract method create() in
    com.sap.aii.mdt.server.MessageMonitoringHome
    public class IntegrationEngineHomeImpl10 extends
    com.sap.engine.services.ejb.session.EJBHomeImpl implements
    IntegrationEngineHome {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:13:
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 is not abstract
    and does not override abstract method getLoggingAttributes
    (java.lang.String) in com.sap.aii.mdt.server.MessageMonitoring
    public class MessageMonitoringObjectImpl11 extends
    com.sap.engine.services.ejb.session.stateful.StatefulEJBObjectImplFP
    implements MessageMonitoring {
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1112: setRwb(boolean) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 cannot implement
    setRwb(boolean) in com.sap.aii.mdt.server.MessageMonitoring; overridden
    method does not throw
    com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setRwb(boolean arg1) throws java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:412: setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringObjectImpl11 cannot implement
    setDomain(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoring; overridden method does not
    throw com.sap.aii.mdt.api.exceptions.OperationFailedException
    public void setDomain(java.lang.String arg1) throws
    java.rmi.RemoteException
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:740: getMessageData(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getMessageData( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:786: cannot resolve symbol
    symbol : method getMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1092: getLoggingAttributes(java.lang.String) in
    com.sap.aii.mdt.server.MessageMonitoringBean cannot be applied to
    (java.lang.String,boolean)
    result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getLoggingAttributes( arg1, arg2);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1217: cannot resolve symbol
    symbol : method hasVersions ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).hasVersions();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1305: cannot resolve symbol
    symbol : method getPureMessageList ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getPureMessageList();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1392: cannot resolve symbol
    symbol : method getFeedback ()
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean result = ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).getFeedback();
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/MessageMonitoringObjectImpl11.java:1432: cannot resolve symbol
    symbol : method setMaxMessages (int)
    location: class
    com.sap.aii.mdt.server.integrationserver.IntegrationServerMonitoringBean ((IntegrationServerMonitoringBean)ctx.getInstance
    ()).setMaxMessages( arg1);
    ^
    D:/usr/sap/XI3/DVEBMGS00/j2ee/cluster/server0/apps/sap.com/com.sap.xi.rwb/EJBContainer/temp/temp1127721952087/com/sap/aii/mdt/server/IntegrationServerHomeImpl10.java:11:
    com.sap.aii.mdt.server.IntegrationServerHomeImpl10 is not abstract and
    does not override abstract method create() in
    com.sap.aii.mdt.server.MessageMonitoringHome
    public class IntegrationServerHomeImpl10 extends
    com.sap.engine.services.ejb.session.EJBHomeImpl implements
    IntegrationServerHome {
    ^
    24 errors
    (message ID:
    com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).REMEXC)
    Deployment of com.sap.xi.rwb finished with Error (Duration 12172 ms)
    Can you help me??
    Thanks
    Regards
    Stefan

  • What is Builder Pattern

    Hi
    I am new to design patterns andI want to know about Builder pattern.
    I gone through some document from google. and came to know that it is used to separate the complex type of objects relationship from its representaion. I also gone through the code. Like some Director,Builder,ConcreteBuilder class defined in the sample code. So are these classes are mandatory to use this pattern or we can define our own ?
    Can anybody explain it with example.?
    Thank/Regards
    Chintan

    The <a href"http://www.softwareleadership.org/pages/J2EEGlossary.xml#B">Builder</a> design pattern is a fancy one. It is used to separate the "Construction" process of a complex object that is (typically created in steps) from its representation, whatever that may be.
    It is closely similar to the Abstract Factory pattern. However the focal point of Abstract Factory is on groups of objects (either similiar or complex). The Abstract Factory returns an object immediately, the Builder typically returns an object after two or more steps. Here is a example.
    You need to create a Policy object. The Policy object will contain rules for sale discounts, tax rules, fees, and warantees.
    To create a Policy object, it must interact with a (1)Tax Manager, (2)Sale Manager and (3)Fee Manager.
    The representation of the final Policy object (which can have different rules and behavior each time one is created) must be separated from the process of how it is created. This is necessary so that we can use the same "construction process" to create an infinte number of "policy object" representations. We need low coupling between the algorithm used to create the complex object and the object itself (the representation).
    In this example, the role of Director is implemented in a class called PolicyManager. PolicyManager has one method called
    "constructPolicy(String s)"
    In this example, the role of Builder is implemented in an interface class called PolicyBuilder. This class has a method called "buildPolicy()". This method returns an object called Policy. To create a Policy object, it must be passed to a TaxManager, SalesManager and a FeeManager. A Chain of Responsibility can be implemented to contain the algorithm of the "creation process".
    This design pattern enables us to separate the representation (whatever that may be) of a "final" object from the steps it goes through for creation.
    Best,
    Sam
    http://www.softwareleadership.org

  • Implementing the Singleton pattern

    Has anyone implemented the singleton pattern in Forte? A singleton is simply ensuring that there is one unique instance of a class. In other OO languages I would create a class method which would use a class variable to hold onto the unique instance. Since forte doesn't have either of these (class methods or variables), I'm not sure how to do it. I thought of using named objects, but it seems like a heavy implementation. Any ideas.

    An SO with its shared=TRUE and anchored=TRUE?
    Venkat J Kodumudi
    Price Waterhouse LLP
    Internet: [email protected]
    Internet2: [email protected]
    -----Original Message-----
    From: [email protected] [SMTP:[email protected]]
    Sent: Monday, February 02, 1998 1:09 PM
    To: Venkat Kodumudi
    Subject: Implementing the Singleton pattern
    To: [email protected] @ Internet
    cc:
    From: [email protected] @ Internet
    Date: 02/02/98 12:36:02 PM
    Subject: Implementing the Singleton pattern
    Has anyone implemented the singleton pattern in Forte? A singleton is
    simply
    ensuring that there is one unique instance of a class. In other OO
    languages I
    would create a class method which would use a class variable to hold
    onto the
    unique instance. Since forte doesn't have either of these (class
    methods or
    variables), I'm not sure how to do it. I thought of using named
    objects, but it
    seems like a heavy implementation. Any ideas.

  • Build is not working in SAP NWDS version 7.0.09

    Suddenly the build is not working for my SAP NWDS version 7.0.09. It used to work fine before.
    When you create a DC and do a Development Component --> build . nothing is happening. In the
    General user output view, nothing is printed also.. I think the built is not actually happening now. So I tried uninstalling the NWDS and installing again. I also tried changing the default workspace. But still the problem do exist. what can be the possible reasons for this ? Please help.. Your valuable answers will be highly appreciated.

    Hi Garcia,
    I have checked with the Network team who manages Exchange server and they have mentioned that it is bouncing back from our CRM host with the error as below,
    said: 553 5.1.8 <[email protected]>... Domain of sender address
        [email protected] does not exist (in reply to MAIL FROM command)
    Regards,
    Arpit

  • HT204053 My kids now each have an itouch, should we all have different apple ids even if I am paying for all itunes and app store purchases? what about icloud? I would like to share itunes and app purchases, but not necessarily photos...help please!

    My kids now each have an itouch, should we all have different apple ids even if I am paying for all itunes and app store purchases? what about icloud? I would like to share itunes and app purchases, but not necessarily photos...help please!

    The recommended solution for most families is to share the same Apple ID for iTunes and App Store purchases, so you can share your purchases, but us different IDs for iMessage, FaceTime and iCloud.  With this arrangement, each person can automatically download purchases made on the shared ID (by turning this feature on in Settings>iTunes & App Stores), while keeping their FaceTime calls, text messages and iCloud data (including photo stream) separated.  There is no requirement that the ID you use for purchasing be the same as the ID you use for these other services.
    This article: http://www.macstories.net/stories/ios-5-icloud-tips-sharing-an-apple-id-with-you r-family/.

  • Logon Error Message - Enterprise Services Builder address not maintained

    Hi Experts,
    I'm about to start the configuration on PI PROD (PI 7.1) server, but I keep encountering an error, saying "Service cannot be reached"
    Service cannot be reached
    What has happened?
    URL http://hostname:port/nwa call was terminated because the corresponding service is not available.
    Note
    The termination occurred in system PIP with error code 404 and for the reason Not found.
    The selected virtual host was 0 .
    What can I do?
    Please select a valid URL.
    If it is a valid URL, check whether service /nwa is active in transaction SICF.
    If you do not yet have a user ID, contact your system administrator.
    ErrorCode:ICF-NF-http-c:000-u:SAPSYS-l:E-i:XXXXX_PIP_00-v:0-s:404-r:Notfound
    HTTP 404 - Not found
    Your SAP Internet Communication Framework Team
    What's more weird is that I can't launch sxmb_ifr because 'Enterprise Services Builder address not maintained'.
    I already made some RFC Destination such as AI_DIRECTORY_JCOSERVER, AI_RUNTIME_JCOSERVER, LCRSAPRFC, and SAPSLDAPI and when I test the connection, here's the error message said 'Error when opening an RFC connection (CPIC-CALL: 'ThSAPOCMINIT' : cmRc=2 thRc=67'
    Thanks for the reply.

    Hello,
    Check if you have more than one system. If so, check whether host, port and URL of startpage are maintained on the correct one.
    Also, please follow the MANUAL steps of the SAP Help link below:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/a0/40084136b5f423e10000000a155106/content.htm
    Ensure you have created the RFC Destinations in the ABAP and Java Environment
    You need to create the following RFC destinations in transaction SM59
    (ABAP) and the Visual Administrator (Java):
    AI_RUNTIME_JCOSERVER
    AI_DIRECTORY_JCOSERVER
    LCRSAPRFC
    SAPSLDAPI
    Last, please check whether, In tcode SM59, the destination INTEGRATION_DIRECTORY_HMI.
    The user maintained in the Logon tab should be PIISUSER
    and ensure he password is correct,and check if the destination will test successfully.
    All of those will solve this issue
    Regards,
    Caio Cagnani

  • Since upgrade to IOS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).

    Since upgrade to OS 10.9 and associated iTunes 11.1.3, I can no longer WiFi sync iPad (IOS 7.0.3) nor iPhone (IOS 6.1.3).  USB connection is required.  Formerly I could sync both devices without locating them physically (not necessarily charging).  I have restarted both devices, turned off and on "Sync with this iPad/iPhone over WIFI" and restarted WiFi.  WiFi is operating (iPad has no SIM).  What next?

    I'm also affected by this bug in exactly the same way as you.
    Some users have had success by closing iTunes, enetering (on OS 10.9) settings --> network --> edit locations, then create a new location with the same wifi/network settings. Then restarting iTunes.
    Others have had some success by editing settings --> iCloud --> de-selecting keychain
    neither of these fixes have worked for me.
    It appears that the iPad can "see" iTunes running on my iMac because when I open settings --> general --> 'iTunes wifi sync', "sync now" is greyed out if iTunes is not running. When iTunes is started, "sync now" is enabled but just doesn't work. Nor does the iPad appear in iTunes.

Maybe you are looking for

  • PLD Excise Variables

    Dear Experts We are newly upgraded 2007. In 2005 Purchase Order PLD we used to get excise amount by variable Number 350. In 2007 I suppose to give Variable No 350 the value not come. Is there any other variable Number? regards

  • CIF performance improvement

    Hi, Is there any document or point list to look for to improve performance of CIF in case of high data load. I mean what are parameters to look for in configuration. What is impact those parameters How to fine tune it. Any changes in integration mode

  • Problems with Pcd Content after restore EP Portal with online Backup

    Dear Colleagues, We have problems to show Pcd Content (Browse and Search) of the Content Administration tab of the EP Portal after restore with a online Backup during Disaster Recovery Test. Restore has become on a mirror system of Production environ

  • Downloading Mountain Lion Without A Mac Available.

    The hard drive in my Mac has suddenly died beyond repair. I now have a brand new blank hard drive but obviously need a version of OSX on it. Is it possible to download Mountain lion without the use of a Mac? Thanks!

  • MacBook Pro early 2011 i7 shuts down when charging

    Hi Everyone, These days I've been experiecing intermitent issues with my MBP due to a unexpected shut downs when the charger is plugged in. Any very subtle movement makes the computer shuts down and had to reboot it. It all started with the charger n