3 Replies Latest reply on Jul 29, 2009 8:41 PM by Arbi Sookazian

    Declaration of seam components

    Neerou b Newbie

      Hello everyone!

      I would like to have some help to declare seam components withing a class.  I need to declare the class CalendarDataModelItemImpl as a class and as an array of the class.

      The class CalendarDataModelItemImpl:

      public class CalendarDataModelItemImpl implements CalendarDataModelItem, Serializable{ ..}

      It is accessed from another class in this way :

              private CalendarDataModelItem calendarDataModelItemImpl;

      I need to instantiate an array of the class CalendarDataModelItemImpl

      How should i declare the array of the CalendarDataModelItemImpl  in seam?

      Anyone has an idea about that?

        • 1. Re: Declaration of seam components
          Shervin Asgari Master

          I am not sure what you are talking about here, but it is nothing seam specific to create an array or list.

          I guess you can create an array like this, however I discourage you from using Arrays and using List instead.

            private CalendarDataModelItem[] calendarDataModelItemImpl;

          • 2. Re: Declaration of seam components
            Jaime Martin Apprentice

            I agree with Shervin, it´s better for you to use Java 5 collections.
            For instance, if ArrayList suits you:

             private ArrayList<CalendarDataModelItem> list = new ArrayList<CalendarDataModelItem>();

            • 3. Re: Declaration of seam components
              Arbi Sookazian Master

              The only time I use arrays in Seam apps is when I have to.


              List<Object[]> list = entityManager.createQuery("select c, o from Customer c, Order o where o.customer.customerId = c.customerId and o.orderId = :orderId")
              .setParameter("customerId", customerId)
              .setParameter("orderId", orderId)

              When there is more than one entity in the select clause, the JPA provider returns a Object[].

              Otherwise, try to use the following pattern:

              List<foo> list = new ArrayList<foo>();

              Same thing applies for Sets:

              Set<foo> set = new HashSet<foo>();

              interface on the left side, concrete implementation on the right side to support polymorphism (e.g. you can swap in a LinkedList for the ArrayList later if required).