Using the Hyperion (Essbase) Objects 6.5  Base Classes

Hi all,I am using Hyperion (Essbase) Objects 6.5 to report from an Essbase 6.5.3 database. Using the sample report.asp page as a guide, I want to use the "EssProperties" class to change the Essbase options for missing values and using aliases, however there no effect on the results returned when setting these properties.Has anyone out there had any success?

You need to set the EssProperties class you created into the EssOperations class:set oEssOperations.EssProperties = <your property class instance>Alternatively, you can modify, in place, the instance of EssProperties that EssOperations already has:with oEssOperations.EssProperties .MissingTextString = "Boo!" .UseAliases = trueend withThink of the Essbase Objects Base Classes sort of as a molecule.. The 'basic atom' of the molecule is the EssOperations class (which contains the normal retrieve/zoom/pivot type of operations). Attached to the 'basic atom' are the things that are needed for a successful operation.. First, a connection (the EssConnection object) is 'plugged into' the molecule. Next, properties (an EssProperties object) is plugged in.. Finally, you need a grid to display it on so you plug in a grid object (or, more technically, one of the components that implement the IEssGrid interface).Once you have all of the 'atoms' of the grid plugged in, you have everything you need to do a successful operation.Tim TowApplied OLAP, Inc

Similar Messages

  • Can two frames use the same SessionInfo object?

    Hi,
    I have some questions on using InfoBus Frame.
    Do parent frame and child frame HAVE TO make use the same
    SessionInfo object?
    I tried to show Master table and Detailed table in seperate
    frame without login twice. I am lucky it works since I happened
    to make two frames have the same SessionInfo object which is
    sessionInfo1 and conmment out sessionInfo1.publishSession()in
    Detailed frame.
    But when I tried to pass Master frame SessionInfo object to
    Detailed frame there is nothing showing up in the detailed frame
    it is just blank frame.
    So two frames have to use the same SessionInfo object . Dose it
    make sense?
    I would really appreciate anyone who can enlighten me on this
    subject.
    Thanks you so much for the attention.
    Julie Chi
    null

    Gopal (guest) wrote:
    : HI,
    : Julie Chi (guest) wrote:
    : : So two frames have to use the same SessionInfo object . Dose
    it
    : : make sense?
    : Yes, if you are working with a master details relation, data
    for
    : both need to be fetched from the same oracle session. So both
    ur
    : frames need to refer the same session. If u refer the detail
    : frame to a different session, u will not see any data, because
    : the information comes from a different oracle session which is
    : not aware of the master data that is fetched. I think it is
    : clear.
    : regards,
    : --Gopal
    1.Use wizard and test the frame
    2.pass the sessioninfo object in parent to child(put method in
    child, call from parent e.g ..getsessionInfo(SessionInfo ss)
    3.pass the sessioninfo object to rowsetinfo in child
    4.add Database authentication (username/password is sufficient)
    methods right before publish method
    *publish activates RowSetInfo and connects to db
    5.add methods in parent to call child
    That should work though depending on how you have set up your
    wizard generated java form, might tweak
    Thanks
    iggy de iguana
    null

  • Is sessionnumber generated in the Hyperion Essbase Server is unque?

    Hi All,
    Is sessionnumber generated in the Hyperion Essbase Server is unque? how to get the session number in the CBS file? What is the code to get the Session number in Essbase Integration Services Shell?
    Regards
    Shakti

    The windows service for essbase in 11.1.2.x is an OPMN service "Oracle Process Manager..."
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Monitoring the Hyperion Essbase Database through OEM.

    Hi DBAs,
    I have setup the Hyperion Planning application (on windows 2003 server 64bit) with Essbase DB and Oracle (10.2.0.3) RDBMS (on Linux 5.3 64bit). I want to monitor the Planning Applicatoin and Essbase DB through OEM Grid Control. I have already installed the agent on Windows and Linux Server. Only able to monitor the Oracle RDBMS.
    Can someone guide me how I can monitor the Essbase DB? Also how can I setup the Hyperion Planning Application with OEM ?
    Thanks
    -Samar-

    See the below link
    http://www.oracle.com/technology/products/bi/epm/pdf/sys9_oem_integration.pdf
    It may help,
    Regards,
    http://www.oracleracexpert.com
    Click here to [Send EMAIL using UTL_MAIL in Oracle 10g |http://www.oracleracexpert.com/2009/11/send-email-using-utlmail-in-oracle-10g.html]
    Click here for [Backup and Restore SPFILE and PFILE|http://www.oracleracexpert.com/2009/11/oracle-spfile-and-pfile.html]

  • I am looking for an example of how to use the Rendezvous synchronization object.

    I can't seem to find an example that uses the TestStand Synchronization Step Types. I am specifically interested in the Rendezvous type. I am have programmed quite a few VC++ applications that use semaphores, so I am familiar with the overall idea of sync objects.
    Thanks in advance.
    ~tony

    Here is a pretty good example that illustrates the benefits of multithreading over single threaded tests, and it utilizes a rendezvous to synchronize its multiple threads (see attachment to this post).
    Jason F.
    Applications Engineer
    National Instruments
    www.ni.com/ask
    Attachments:
    Rendezvous_Demo.zip ‏81 KB

  • MICR printing problem using the Crystal ReportDocument object in C# app

    We developed a small C# windows program 6 months ago that reads a bank draft record and uses a Crystal Report form to print the draft (using ReportDocument() object and the PrintToPrinter() method).  This has been working fine for 6 months. (using .Net 2.0 Framework and Crystal Reports .Net plugin included with VS 2005 on client machine - CRRedist2005_X64.msi)
    Now the requirements have changed to put a MICR line at the bottom ot the draft check and print.  We have updated a similar Crystal draft report form and printed from Crystal Viewer - this works fine.  But when we update the Crystal report form used in the C# application, with the same MICR commands, using the same MICR printer, and the same user trying the print, it does not work.  The MICR commands are printed on the draft just like regular text, instead of being interpreted by the printer as MICR commands.  Must be something within the Crystal Reports .Net redistributable that is causing it to work incorrectly because it works correctly from the same users PC using Report Viewer.
    Note:  The MICR field on the Crystal Report contains the following chars:
           &%STHPASSWORD$&%SMD' MICR '$&%STQ$
    When we print, the above chars just print out like text
    Can anybody help with any suggestions ?
    Are they any hotfixes that address this issue of PCL commands not recognized on printer?

    The app that is working is a C++ vendor app, however the Crystal piece is seperate piece that uses the Crystal Report Viewer to pull up the draft report. The print button is then hit within Crystal Report Viewer and the draft prints correctly.
    - so the above app is using the Report Designer Component (craxdrt.dll) and as such it is not using the .NET assemblies...
    For the app that is not working, we are not using Crystal Report Viewer, but are using the ReportDocument object, from the Crystal .Net Redistributable (referenced above), embeded into our C# app. The app executes a PrintToPrint command against the identical Crystal report, however, running it this way, the MICR command that is embeded into the report is not recognized by the MICR printer. The output seems to jumble the MICR command that I posted earlier in the thread and does not keep the command in a readable format for the MICR printer.
    - the above is not using the Report Designer Component (craxdrt.dll). It is using the .NET assemblies and thus the .NET framework.
    Have you been able to get .NET to recognize / see the fonts in that label I mentioned on  6/27/08?
    Ludek

  • Want to insert a record using the updatable view object..

    Hi, i am trying to create a new record in my first page using the updatable entity..I set the form in creat mode by default so that it will show empty fields for the first time.It works but want to know the following details..
    1.Want to set default values to some fields ,so how do i override the create method and where(i mean the view object or entity).
    2) internally it is using update query but not insert to insert a new record.
    3) if it uses insert internally, how do i manipulate the insert statement at run time.
    Guys please share ur experience and knowledge with me.I am awaiting for ur help....
    thanks in advance..

    From my perspective, you basically have 2 issues going here, the back end (database) and the front end (web page).
    To simplify your life, test your overridden methods using the built-in tester. You can use it by right-clicking on your application module and selecting test. You can insert/update/delete rows in any updateable view object you have available in your data model. The only down-side is that you can't step through your code (so far as I've been able to determine, anyway).
    As for the web side, there's a commit action in the data control palette. You can drop that onto a page as a button. There's also some tricks you can play so it saves and commits on the same button click, but I don't recall how specifically you do that. I know I've found it searching in here though.

  • Error message while using the hyperion planning copy utility

    When i try to copy an application from production server to development server using copy utility ,having relation databases in SQL server i got the following error message.
    " D:\Hyperion\Planning\bin>copyApp /S:PLAN /T:HYP_PLAN /P:copyapp.properties /L:pl
    an.log /A /C /O /E /U
    Creating rebind thread to RMI
    Exception in thread "main" java.lang.RuntimeException: PLAN_JDBC_DATABASE_TYPE i
    s undefined or it's value is null
    at com.hyperion.planning.copyapp.CopyAppHelper.getConnectionInfo(Unknown
    Source)
    at com.hyperion.planning.copyapp.CopyAppHelper.getConnectionInfoFromProp
    ertyFile(Unknown Source)
    at com.hyperion.planning.copyapp.CopyApp.main(Unknown Source)"
    my coppyapp.properties file is
    "Plan_JDBC_CATALOG=HypSys9Plan
    Plan_JDBC_DRIVER=hyperion.jdbc.sqlserver.SQLServerDriver
    Plan_JDBC_URL=jdbc:hyperion:sqlserver://naspdsvdb03:1433
    Plan_JDBC_USERNAME=HypSys9Plan
    Plan_JDBC_PASSWORD=isoIEn28Jkh
    Plan_JDBC_DATABASE_TYPE=SQL
    Plan_OLAP_SERVER=naspdsvap28
    Plan_OLAP_USERNAME=admin
    Plan_OLAP_PASSWORD=password
    Plan_OLAP_APPNAME=Plan
    Plan_JDBC_CATALOG=hyp_plan
    Plan_JDBC_DRIVER=hyperion.jdbc.sqlserver.SQLServerDriver
    Plan_JDBC_URL=jdbc:hyperion:sqlserver://nasdvsvdb02:1433
    Plan_JDBC_USERNAME=HYP_PLAN
    Plan_JDBC_PASSWORD=hyp_plan
    Plan_JDBC_DATABASE_TYPE=SQL
    Plan_OLAP_SERVER=naspdsvap20
    Plan_OLAP_USERNAME=hyeasprod
    Plan_OLAP_PASSWORD=hyperion
    Plan_OLAP_APPNAME=Plan "
    I could not interpret above mentioned error.anybody have any suggestions.
    thanks
    Pavan

    Hi,
    The utility is case sensitive, in your parameters you have put /S:PLAN but in your copyapp.properties you have lowercase plan_
    so the utility is looking for PLAN_JDBC_DATABASE_TYPE and won't find it because you have plan_JDBC_DATABASE_TYPE
    either change the parameter or the properties file to match
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Changing the Modified Date of a List Item using the SharePoint Client Object Model (C#) with Contribute Permission

    I have a small snippet of code that I use to update the Modified Date of a list item and it works great for users with Full Control permissions.  However, for users with just Contribute access to the site the code doesn't work.  Instead, SharePoint
    just updates the Modified Date to now.
    I did some testing, and narrowed down the specific permission level that allows updating of Modified dates and oddly enough, it's the "Manage Permissions" level.
    Has anyone run into this issue? If so, how do I work around this and update the Modified date as a user with only Contribute access to a site/library?
    Here's the code:
    DateTime Test = new DateTime(2012, 5, 4);
    ListItem li = list.GetItemById(itemID);
    li["Modified"] = Test;
    li.Update();
    ct.ExecuteQuery();
    Thanks,
    Max

    Hello,
    As a workaround you can pass admin credential in your code because as per my knowledge contributor can't update default columns like: created by, modified by, modified, created.
    ClientContext clientContext = newClientContext(siteUrl);
    ClientContext.Credentials = newNetworkCredential(UserName, Password, Domain);
    Hope it could help
    Hemendra:Yesterday is just a memory,Tomorrow we may never see
    Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • I,ve been trying to use the "IMAQ Count Objects" but it seems it does not return anything. I,m not sure if i need a grayscale image as an input? anyone can help

    Any more information on :IMAQ Count Objects" vi?

    It looks like you are correct. I was thinking of the input to "Complex Measure", which requires the binary image. I started with IMAQ back when we had to chain all the routines together ourselves, instead of having a single vi that did everything for us.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • Should i use the home button normally on daliy basis , or i have to use assestive touch to keep more long life for home button

    is the home button durable or after some time will be lost

    I have a 2+ year old iPod touch.  I'm always closing apps that I don't use in order to minimize background activity that uses battery power.  I've noticed that the home button has become much less responsive recently, no doubt because I'm compulsively hitting the home button to close unused apps.
    Thus, the answer to your question is that it depends.  If you are like the vast majority of users, it will not cause a problem.  If, however, you have this strange compulsion to close apps, then it may degrade the response of the home button.  On my iPhone 6, I'm using assistive touch to avoid this.
    (Note: I'm aware of the many posts stating that keeping apps open doesn't use up the battery or confuse the operating system.  I'm hard-headed, though, so I just keep closing apps.  By comparison, my wife routinely has 20 or more apps open along with 30+ Safari pages at any one time.  Different strokes for...)

  • How to find the date when the users has been created in Hyperion Essbase

    Please let me know, if there is any option or way to find the date when the users has been created in Hyperion.
    Essbase - 9.3.1.0.0
    Sun Solaris SPARC (32-bit) - 5.8
    If not in Hyperion, could you please let me know if it gets stored in the repository. If yes, please let me know the table name in Oracle.

    I don't know of a way of getting this information from Shared Services via the standard web UI. However you can see when a native user was created in openLDAP. If your users are all native then you can use an ldap browser to view the CreateTimestamp.
    Port: 58089
    User DN:CN=911,ou=People,dc=css,dc=hyperion,dc=com
    Password: Your shared services admin user password
    You should see each new native user under the ou=People and each CN will have a create timestamp.
    I can't help if all you users are external or your using the old Essbase native security.
    Gee

  • Strange memory behaviour using the System.Collections.Hashtable in object reference

    Dear all,
    Recently I came across a strange memory behaviour when comparing the system.collections.hashtable versus de scripting.dictionary object and thought to analyse it a bit in depth. First I thought I incorrectly destroyed references to the class and
    child classes but even when properly destroying them (and even implemented a "SafeObject" with deallocate method) I kept seeing strange memory behaviour.
    Hope this will help others when facing strange memory usage BUT I dont have a solution to the problem (yet) suggestions are welcome.
    Setting:
    I have a parent class that stores data in child classes through the use of a dictionary object. I want to store many differenct items in memory and fetching or alteging them must be as efficient as possible using the dictionary ability of retrieving key
    / value pairs. When the child class (which I store in the dictionary as value) contains another dictionary object memory handeling is as expected where all used memory is release upon the objects leaving scope (or destroyed via code). When I use a system.collection.hashtable
    no memory is released at all though apears to have some internal flag that marks it as useable for another system.collection.hashtable object.
    I created a small test snippet of code to test this behaviour with (running excel from the Office Plus 2010 version) The snippet contains a module to instantiate the parent class and child classes that will contain the data. One sub will test the Hash functionality
    and the other sub will test the dictionary functionality.
    Module1
    Option Explicit
    Sub testHash()
    Dim Parent As parent_class
    Dim d_Count As Double
    'Instantiate parent class
    Set Parent = New parent_class
    'Create a child using the hash collection object
    Parent.AddChildHash "TEST_hash"
    Dim d_CycleCount As Double
    d_CycleCount = 50000
    'Add dummy data records to the child container with x amount of data For d_Count = 0 To d_CycleCount
    Parent.ChildContainer("TEST_hash").InsertDataToHash CStr(d_Count), "dummy data"
    Next
    'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
    'According to documentation and debug messages not really required!
    Set Parent.ChildContainer("TEST_hash") = Nothing
    'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
    Set Parent = Nothing
    End Sub
    Sub testDict()
    Dim Parent As parent_class
    Dim d_Count As Double
    'Instantiate parent class
    Set Parent = New parent_class
    'Create a child using the dictionary object
    Parent.AddChildDict "TEST_dict"
    Dim d_CycleCount As Double
    d_CycleCount = 50000
    'Blow up the memory with x amount of records
    Dim s_SheetCycleCount As String
    s_SheetCycleCount = ThisWorkbook.Worksheets("ButtonSheet").Range("K2").Value
    If IsNumeric(s_SheetCycleCount) Then d_CycleCount = CDbl(s_SheetCycleCount)
    'Add dummy data records to the child container
    For d_Count = 0 To d_CycleCount
    Parent.ChildContainer("TEST_dict").InsertDataToDict CStr(d_Count), "dummy data"
    Next
    'Killing the parent when it goes out of scope should kill the childs. (Try it out and watch for the termination debug messages)
    'According to documentation and debug messages not really required!
    Set Parent.ChildContainer("TEST_dict") = Nothing
    'According to documentation not really as we are leaving scope but just to be consistent.. kill the parent!
    Set Parent = Nothing
    End Sub
    parent_class:
    Option Explicit
    Public ChildContainer As Object
    Private Counter As Double
    Private Sub Class_Initialize()
    Debug.Print "Parent initialized"
    Set ChildContainer = CreateObject("Scripting.dictionary")
    End Sub
    Public Sub AddChildHash(ByRef ChildKey As String)
    If Not ChildContainer.Exists(ChildKey) Then
    Dim TmpChild As child_class_hashtable
    Set TmpChild = New child_class_hashtable
    ChildContainer.Add ChildKey, TmpChild
    Counter = Counter + 1
    Set TmpChild = Nothing
    End If
    End Sub
    Public Sub AddChildDict(ByRef ChildKey As String)
    If Not ChildContainer.Exists(ChildKey) Then
    Dim TmpChild As child_class_dict
    Set TmpChild = New child_class_dict
    ChildContainer.Add ChildKey, TmpChild
    Counter = Counter + 1
    Set TmpChild = Nothing
    End If
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Parent being killed, first kill all childs (if there are any left!) - muahaha"
    Set ChildContainer = Nothing
    Debug.Print "Parent killed"
    End Sub
    child_class_dict
    Option Explicit
    Public MemmoryLeakObject As Object
    Private Sub Class_Initialize()
    Debug.Print "Child using Scripting.Dictionary initialized"
    Set MemmoryLeakObject = CreateObject("Scripting.Dictionary")
    End Sub
    Public Sub InsertDataToDict(ByRef KeyValue As String, ByRef DataValue As String)
    If Not MemmoryLeakObject.Exists(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Child using Scripting.Dictionary terminated"
    Set MemmoryLeakObject = Nothing
    End Sub
    child_class_hash:
    Option Explicit
    Public MemmoryLeakObject As Object
    Private Sub Class_Initialize()
    Debug.Print "Child using System.Collections.Hashtable initialized"
    Set MemmoryLeakObject = CreateObject("System.Collections.Hashtable")
    End Sub
    Public Sub InsertDataToHash(ByRef KeyValue As String, ByRef DataValue As String)
    If Not MemmoryLeakObject.ContainsKey(KeyValue) Then MemmoryLeakObject.Add KeyValue, DataValue
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "Child using System.Collections.Hashtable terminated"
    Set MemmoryLeakObject = Nothing
    End Sub
    Statistics:
    TEST: (Chronologically ordered)
    1.1 Excel starting memory: 25.324 kb approximately
    Max memory usage after hash (500.000 records) 84.352 kb approximately
    Memory released: 0 %
    1.2 max memory usages after 2nd consequtive hash usage 81.616 kb approximately
    "observation:
    - memory is released then reused
    - less max memory consumed"
    1.3 max memory usages after 3rd consequtive hash usage 80.000 kb approximately
    "observation:
    - memory is released then reused
    - less max memory consumed"
    1.4 Running the dictionary procedure after any of the hash runs will start from the already allocated memory
    In this case from 80000 kb to 147000 kb
    Close excel, free up memory and restart excel
    2.1 Excel starting memory: 25.324 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released: 91,9%
    2.2 Excel starting memory 2nd consequtive dict run: 27.552 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released: 99,4%
    2.3 Excel starting memory 3rd consequtive dict run: 27.712 kb approximately
    Max memory usage after dict (500.000 records) 90.000 kb approximately
    Memory released:

    Hi Cor,
    Thank you for going through my post and took the time to reply :) Most apreciated. The issue I am facing is that the memory is not reallocated when using mixed object types and is not behaving the same. I not understand that .net versus the older methods
    use memory allocation differently and perhaps using the .net dictionary object (in stead of the scripting.dictionary) may lead to similar behaviour. {Curious to find that out -> put to the to do list of interesting thingies to explore}
    I agree that allocated memory is not a bad thing as the blocks are already assigned to the program and therefore should be reallocated with more performance. However the dictionary object versus hashtable perform almost identical (and sometimes even favor
    the dictionary object)
    The hashtable is clearly the winner when dealing with small sets of data.
    The issue arises when I am using the hash table in conjunction with another type, for example a dictionary, I see that the dictionary object's memory is stacked on top of the claimed memory space of the hashtable. It appears that .net memory allocation and
    reuse is for .net references only. :) (Or so it seems)
    In another example I got with the similar setup, I see that the total used memory is never released or reclaimed and leakage of around 20% allocated memory remains to eventually crash the system with the out of memory message. (This is when another class
    calls the parent class that instantiates the child class but thats not the point of the question at hand)
    This leakage drove me to investigate and create the example of this post in the first place. For the solution with the class -> parent class -> child class memory leak I switched all to dictionaries and no leakage occurs anymore but nevertheless thought
    it may be good to share / ask if anyone else knows more :D (Never to old to learn something new)

  • Can a derived class catch base class object

    can a derived class object catch a base class object
    e-g if i have a class
    class Test {
    // code
    }and
    class Test2 extends Test {
    }and lets say there is a method that return an object of Test (base class), so is it possible to write
    Test2 t=getTestObj(); // i-e subclass holding base class objectif its not.. how can we do so? so that derived class should hold base class object....

    sorry..
    here is how it goes
    i have a function a class
    public Test getObj() {
    // code
    }The constraint is that i cant change the implementation of this above function.
    Now when i call this function, it returns me a Test object. But i cant do
    Test t=getObj();because the Test class is written purely in java whereas i want to use write a new Test class that implements the same functionality [using the above given function] in JNI.
    so what i did, i created a new package [nativ] and created a class "Test" in that. But since i have to use the function that returns me Test and not "nativ.Test", so what i did, i inherited nativ.Test from "Test" so that the object might resolve the reference.
    So this is it.. that i cant modify the function and i need some way to do it.. plz reply

  • Problems Using an Array of Objects

    I have taken some time off from java and have aparently forgot something. I have a program which has one parent class "Car" with three child classes"Sedan", "Sport", "Suv" and one interface. The "Car" class contains three accessor and mutator methods, and the child classes also have three accessor and mutator methods. In my main I create an array Car[] carArray = new Car[6]; and instantiate. I can call the methods of the parent class but am unable to call the methods of the child classes. I need a little help to get me in the right direction to get these cobwebs out of my skull. Here is a sample of what I'm doing:
    //from my main method
    Car[] carArray = new Car[3];
    carArray[0] = new Sport("Chev", "Camaro", 1995, 4500.67, 120000);
    carArray[1] = new Sedan("Ford", "Taurus", 1997, 3689.55, 40000);
    carArray[2] = new Suv("Honda", "Pilot", 2003, 6955.99, 67000);
    for(int i = 1; i < carArray.length(); i++)
        carArray.getYear(); //getYear() is from the parent "Car" class and works just fine.
    carArray[i].getValue(); //getValue() also from the parent "Car" class and works just fine.
    carArray[i].getMiles(); //getMiles() from parent "Car" class and works.
    carArray[i].getMake(); //getMake() is part of the child class and gives me an error: "cannot find symbol. symbol: variable getMake()
    carArray[i].getModel(); //getModel() is also a part of the child classes and also cannot find symbol.
    {code}
    I have imported my package with my parent and child classes correctly and have tried putting them all in the same folder, so I think I have a failure in logic. Can someone help me straighten this out in my head? :) Much thanks

    "Is it A or B"?
    "Yes"
    Meaning "either one."
    The parent class doesn't have to be abstract as far as Java is concerned, but it seems to me you'd want it to be abstract. Will you ever be creating just a plain old Car (as opposed to a Sedan or Suv)?
    You just said "doesn't work," without providing any details about what you tried or what the exact problems was, so it's impossible to offer any specific, concrete advice. Here's an example that shows one way things might fit together.
       * inteface, to define the type, with 3 methods: add(), iterator(), and contains()
      public interface List {
        boolean add(Object obj);
        Iterator iterator();
        boolean contains(Object obj);
       * abstract base class, to implement methods that don't depend on specific implementations
       * (just contains() in this case
      public abstract class AbstractList implements List {
        public boolean contains(Object obj) {
          for (Iterator iter = iterator(); iter.hasNext ();) {
            if (iter.next ().equals (obj)) {
              return true;
          return false;
       * concrete subclass
       * provides concrete methods that depend on the specific implementation
      public class ArrayList extends AbstractList {
        private Object[] elements = new Object[256];
        int size = 0;
        public boolean add(Object obj) {
          if (size == elements.length) {
            // create a larger array and copy over existing elements
          elements[size++] = obj;
          return true;
         * anonymous inner class that implements Iterator
        public Iterator iterator() {
          return new Iterator() {
            private int nextIndex = 0;
            public boolean hasNext () {
              return nextIndex < size;
            public Object next () {
              return elements[nextIndex++];
      }A few things to note:
    0. The above are based on the classes of the same names in java.util, but are stripped down for simplicity. If something doesn't look right (like missing methods on List and Iterator) it was done to keep the example clean and simple.
    1. We could skip either the interface or the abstract class or both, or the abstract base class could be concrete. Java doesn't care. We do what makes sense for our design.
    2. Here we define an interface because we want to define a pure type with no implementation. Anybody anywhere can implement a List however they want, and as long as it meets the contract of our interface, it can be used by any code expecting a List.
    3. We define the base class AbstractList because there are methods that have a reasonable default implementation that can be reused by subclasses. In this case, contains() doesn't do anything that depends on the specific implementation, so it can be defined in the base class. All the subclasses can use that implementation of contains(). Of course, any subclass is still free to override contains() to provide its own implementation if it wants.
    4. An implementation of List can extend the base class, AbstractList, but it doesn't have to. It could just implement List and provide its own implementation of contains().
    5. The base class is abstract because some methods don't have a default implementation that can be reused. Both add() and iterator() depend on the specifics of the implementation. They both need direct access to the internal backing store. If we had another concrete implementation, LinkedList, its backing store would be a privately defined class of Node that contains the elements and pointers to previous and next. There would be no array, and add() and iterator() would be written very differently. There's no way we could have written add() and iterator() in a way that would have worked for both backing stores.
    6. All methods in an interface are public and abstract, even if you don't declare them that way.
    7. A class that implements an interface or extends an abstract class must provide implementations for all the abstract methods in both, or else must be itself declared abstract.
    8. When a class extends another class, it also implicitly implements all the interfaces that the parent class does.
    9. A class with one or more abstract methods must be declared abstract, but any class can be declared abstract, even if it has no abstract methods.
    Edited by: jverd on Mar 27, 2010 9:12 AM

Maybe you are looking for

  • Can't able to update the OPEN STOCK UPDATION in MB1C

    Hi, While posting with MB1C, an error will be appeard as " Period 02/009 is not open for account type S & G/L 799999( this is for semi fin material ) & S & G/L 399999(this is for raw material). Kindly tell the procedure to solve this problem. Gobinat

  • Needing help with moving pictures around

    I am in need of help in moving pictures and images around dreamweaver document window. My older brother gave me his computer witch has dreamweaver MX (he is in Irag) so i can start building building my own websites. I went to borders and bought a boo

  • Bright Pixel on Light Colored Backgrounds

    Hi fellow Mac Friends, I have a quick question for you all that has been bugging me for over a month. I recently bought a Mac Book Pro and it came with a beautiful LCD screen with no issues. A few weeks after I bought it, it developed the awful whine

  • Transaction Iview - Parameters

    Hi, I have a transaction iview wherein i want to pass the parameters. I have checked that static parameters are getting passed. But my requirement is of passing portal userid to the transaction iview. How is it possible. Regards, Priya

  • HTMLB object for error message

    what HTMLB object is for displaing error message in iView?