Automated Setter-Method implementation

Hi all,
in a currently running project we are implementing a few "entities" with several attributes. So for time saving I developed a short report, that generates the setter methods with parameters.
But I actually don't have an idea how to automate the implementation of these methods.
Has someone an idea how to do this??
Here is my actual implementation of the program (if someone want to test and copy it; actually it writes the statements for the implementation to a list, from witch you can copy and past it to the ABAP-Editor):
*& Report Z_CREATE_SETTER *
REPORT z_create_setter .
TYPE-POOLS:
seoo, seos.
DATA:
s_class TYPE seoclskey,
s_param TYPE seocmpkey,
attrib_list TYPE seoo_attributes_r,
wa_attrib TYPE seoo_attribute_r,
method TYPE seoo_method_w,
methods TYPE seoo_methods_w,
parameters TYPE seos_parameters_w,
parameter TYPE seos_parameter_w,
out TYPE string.
PARAMETERS:
class TYPE seoclsname OBLIGATORY.
MOVE class TO s_class-clsname.
CALL FUNCTION 'SEO_ATTRIBUTE_READ_ALL'
EXPORTING
cifkey = s_class
IMPORTING
attributes = attrib_list
EXCEPTIONS
clif_not_existing = 1
OTHERS = 2.
SORT attrib_list.
LOOP AT attrib_list INTO wa_attrib.
CLEAR: method, parameter.
REFRESH: methods, parameters.
* Methode anlegen
MOVE s_class TO method-clsname.
CONCATENATE 'set_' wa_attrib-cmpname INTO method-cmpname.
TRANSLATE method-cmpname TO UPPER CASE.
CONCATENATE 'Setter für' wa_attrib-cmpname INTO method-descript
SEPARATED BY space.
MOVE sy-langu TO method-langu.
MOVE '2' TO method-exposure.
MOVE '1' TO method-state.
APPEND method TO methods.
CALL FUNCTION 'SEO_METHOD_CREATE'
EXPORTING
cifkey = s_class
methods = methods.
* Parameter anlagen
MOVE s_class TO s_param-clsname.
MOVE method-cmpname TO s_param-cmpname.
MOVE s_class TO parameter-clsname.
MOVE s_param-cmpname TO parameter-cmpname.
CONCATENATE 'IM_' wa_attrib-cmpname INTO parameter-sconame.
TRANSLATE parameter-sconame TO UPPER CASE.
MOVE 0 TO parameter-pardecltyp.
MOVE 1 TO parameter-parpasstyp.
MOVE wa_attrib-typtype TO parameter-typtype.
MOVE wa_attrib-type TO parameter-type.
MOVE wa_attrib-descript TO parameter-descript.
MOVE sy-langu TO parameter-langu.
APPEND parameter TO parameters.
CALL FUNCTION 'SEO_PARAMETER_CREATE'
EXPORTING
cmpkey = s_param
parameters = parameters.
ULINE.
CONCATENATE parameter-cmpname '.' INTO out.
CONCATENATE 'method' out INTO out SEPARATED BY space.
WRITE: / out.
CLEAR out.
CONCATENATE parameter-sconame '.' INTO out.
CONCATENATE wa_attrib-cmpname '=' out INTO out SEPARATED BY space.
WRITE: / out.
WRITE: / '/aip/if_entity~is_dirty = ''X''.'.
WRITE: / 'endmethod.'.
ENDLOOP.

Let's say I have an object array as a memeber variable for my CustomException class. I also have constructor which will initialize the object array; on top of this I want to add some setter method where in I can set the desired object array.
Can I have this setter? Is there any guidline to have setter method in an Exception class. I have never seen any setter method in the Exception class. Why is it so? Is there any reson behind this?
Here is my sample program
class CustomException extends Exception
     Object objArray[] = null;
     Exception ex;
     public CustomException()
     public CustomException(Exception ex)
          super(ex);
          this.ex = ex;
     public CustomException(Exception ex, Object objArray[])
          super(ex);
          this.ex = ex;
          this.objArray = objArray;
     public Object[] getObjectArray()
          return objArray;
     // Can I have this setter? Is there any guidline to have setter method
     // in an Exception class. I have never seen any setter method in the Exception class
     // Why is it so? Is there any reson behind this?
     public void setObjectArray(Object objArray[])
          this.objArray = objArray;
}

Similar Messages

  • Confusion about get/set method not working

    Hi
    Hopefully someone can point out the elementary mistake I have made in my code. I have created a get/set method to hold a value"total" so that I can then get it to display it further down my code in an HTML page. I am setting the value as I can check this by printing it out (line 102) but when I try to use it again it displays 0.0. What have I done wrong?
    class ReportListener implements ActionListener
         Context context;
         ResultSet resultAll;
         ResultSet resultTotal;
         JFrame frame;
         int daysInMonth;
         int i;
         DisplayCurrencyOnBills d;
         DateFormatSymbols symbols;
         String[] newWeekday;
         Date theDate;
         String date;
         ReportListener (Context theContext)
              context = theContext;
         public void actionPerformed(ActionEvent e)
           try
              printWeeklyReport();
              //countDaysInMonth();
              getReportMoneyTotal();
         catch (SQLException s)
                   s.printStackTrace();
         public void countDaysInMonth()
         public void getReportMoneyTotal() throws SQLException
              Calendar todayTotal =Calendar.getInstance() ;
               SimpleDateFormat reportDateFormat = new SimpleDateFormat("dd MM yyyy");
              PreparedStatement preparedT =context.getConnection().prepareStatement(
                   "SELECT Sum(tblSession.Fee) AS Total, Count(tblBooking.BookingID) AS CountOfBookingID FROM tblSession INNER JOIN "+
                   "(tblBooking INNER JOIN tblCustomer_Booking ON tblBooking.BookingID = tblCustomer_Booking.BookingID) ON tblSession.SessionID = tblBooking.SessionID "+
                   "WHERE (((tblBooking.EventDate)>DateAdd('m',-1,#"+reportDateFormat.format(todayTotal.getTime())+"#)) AND ((tblSession.Session)='Morning' Or (tblSession.Session)='Evening')) OR (((tblSession.Session)='Afternoon') AND ((tblBooking.Extension)=Yes))"
              ResultSet resultTotal =preparedT.executeQuery();
              resultTotal.next();
              double total =resultTotal.getDouble("Total");     
              context.setReportIncomeTotal(total);
              System.out.println("Line 102 "+context.getReportIncomeTotal());
              preparedT.close();
         public void printWeeklyReport() throws SQLException
              Calendar today =Calendar.getInstance() ;
               SimpleDateFormat reportDateFormat = new SimpleDateFormat("dd MM yyyy");
              PreparedStatement prepared =context.getConnection().prepareStatement(
                   "SELECT tblBooking.EventDate, tblSession.Session, tblBooking.Extension, tblSession.Fee, Count(tblBooking.BookingID) AS CountOfBookingID "+
                   "FROM tblSession INNER JOIN (tblBooking INNER JOIN tblCustomer_Booking ON tblBooking.BookingID = tblCustomer_Booking.BookingID) ON "+
                   "tblSession.SessionID = tblBooking.SessionID GROUP BY tblBooking.EventDate, tblSession.Session, tblBooking.Extension, tblSession.Fee "+
                   "HAVING (((tblBooking.EventDate)>DateAdd('m',-1,#"+reportDateFormat.format(today.getTime())+"#)) AND ((tblSession.Session)='Morning' Or "+
                   "(tblSession.Session)='Evening')) OR (((tblSession.Session)='Afternoon') AND ((tblBooking.Extension)=Yes))"
              ResultSet resultAll =prepared.executeQuery();
              resultAll.next();
              System.out.println("Line 123 "+context.getReportIncomeTotal());
                        PrintWriter printWriter;
                        try
                             JFileChooser fc=new JFileChooser();
                             int returnVal = fc.showSaveDialog(frame);
                             if (returnVal != JFileChooser.APPROVE_OPTION)
                                  return;
                             FileOutputStream outputStream=
                                  new FileOutputStream(fc.getSelectedFile());
                             OutputStreamWriter writer=
                                  new OutputStreamWriter(outputStream,"UTF-8");
                             printWriter=new PrintWriter(writer);     
                           printWriter.println("<html><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><body><h1>Monthly Usage Statistics</h1>");
                           printWriter.println("<table width='100%' border='1'><tr><td width='100%' colspan='8'><h2 align='center'>Monthly Summary</h2></td></tr>");
                         System.out.println("Line 152 "+context.getReportIncomeTotal());
                         int count = 0;
                             while ( resultAll.next() )
                              count++;
                              String session = resultAll.getString("Session");
                              Double fee= resultAll.getDouble("Fee");
                           // display currency correctly
                         //double d=Double.parseDouble(fee);
                         Locale locale = new Locale("GBP");
                         NumberFormat gbpFormat = NumberFormat.getCurrencyInstance(locale);
                             symbols = new DateFormatSymbols(new Locale("en"));
                         newWeekday =symbols.getWeekdays();
                             SimpleDateFormat formatter = new SimpleDateFormat("EEEE",symbols);
                             Date theEventDate = new Date();
                             theEventDate=resultAll.getDate("EventDate");
                             date = formatter.format(theEventDate);
                             // set date for Usage Report
                             Calendar reportDate = Calendar.getInstance();
                             Calendar reportToday =Calendar.getInstance();
                             reportDate.add(Calendar.MONTH,-1);
                             SimpleDateFormat reportFormat = new SimpleDateFormat("EEEE ,dd MMM yyy");     
                             //setDecimalFormat for report total
                             DecimalFormat decFormat = new DecimalFormat(".##");
                             printWriter.println(
                             "<tr><td width='100%' colspan='8'>For month from "+reportFormat.format(reportDate.getTime())+" to "+reportFormat.format(reportToday.getTime())+"</td></tr><tr><td width='100%' colspan='8'>Total amount of income from occasional bookings "+decFormat.format(context.getReportIncomeTotal())+"</td>"+
                               "</tr><tr><td width='100%' colspan='8'>Percentage use for all bookings</td></tr><tr><td width='8%'></td><td width='8%'>MON</td><td width='9%'>TUES</td>"+
                            "<td width='9%'>WEDS</td><td width='9%'>THURS</td><td width='9%'>FRI</td><td width='9%'>SAT</td><td width='9%'>SUN</td></tr><tr><td width='8%'>AM</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr><tr><td width='8%'>PM</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr><tr><td width='8%'>EVE</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr>"
                             System.out.println(count);
                             printWriter.println("</table>");
                             printWriter.println("</body></html>");
                             printWriter.close();
                             prepared.close();
                             JDialog reportDialog=new JDialog(frame);
                             reportDialog.setSize(800,600);
                             JEditorPane editorPane=new JEditorPane(fc.getSelectedFile().toURL());
                             editorPane.setContentType("text/html; charset=UTF-8");
                             reportDialog.getContentPane().add(editorPane);
                             reportDialog.setVisible(true);
                        catch (IOException exception)
                             exception.printStackTrace();
         This code finds data from a database(this works as it also prints a report). Here is the extraxt of my get/set method which is located in a "context" class.
    public void setReportIncomeTotal(double total)
              this.total=total;
         public double getReportIncomeTotal()
              return total;
         }I'd be grateful for any help.

    but when I try to use it again it displays 0.0This seems to mean that either the value has been reset or you are calling the method on another (new) ReportListener.
    It's hard to say, as you didn't provide us with the code sample that illustrate the corresponding scenario (did you?.)
    Note that I didn't get into details, but I just noticed that your actionPerformed method first print weekly report, and then get the money total. (Shouldn't it be the opposite order?)

  • Setting value for attribute  'PO_NUMBER_SOLD'  using setter method

    Hi Experts,
    I need to set the value of a screen field according to some condition. I am using setter method of this attribute to set the value but it is not getting changed.
    I have written following code in DO_PREPARE_OUTPUT method of implementation class ZL_ZZBT131I_ZCREDITCHECK_IMPL using setter method of attribute
    Get Referral Authorization Code
          lv_val1 = me->typed_context->crechkresph->get_po_number( attribute_path = 'PO_NUMBER' ).
          me->typed_context->crechkresph->set_po_number( attribute_path = 'PO_NUMBER'
                                                            value     = ' ' ).
    while debugging I found that in method set_po_number set_property method has been used:--
    current->set_property(
                          iv_attr_name = 'PO_NUMBER_SOLD' "#EC NOTEXT
                          iv_value     = <nval> ).
    In set_property method  following code is getting executed
    if ME->IS_CHANGEABLE( ) = ABAP_TRUE and
               LV_PROPS_OBJ->GET_PROPERTY_BY_IDX( LV_IDX ) ne IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY.
              if <VALUE> ne IV_VALUE.
                if ME->MY_MANAGER_ENTRY->DELTA_FLAG is initial.
                first 'change' -> proof that entity is locked
                  if ME->MY_MANAGER_ENTRY->LOCKED = FALSE.
                    if ME->LOCK( ) = FALSE.
                      return.
                    endif.
                  endif.
                flag entity as modified
                  ME->MY_MANAGER_ENTRY->DELTA_FLAG = IF_GENIL_CONTAINER_OBJECT=>DELTA_CHANGED.
                endif.
                ME->ACTIVATE_SENDING( ).
              change value
                <VALUE> = IV_VALUE.
              log change
                set bit LV_IDX of ME->CHANGE_LOG->* to INDICATOR_SET.
              endif.
            else.
            check if it is a real read-only field or a display mode violation
              assert id BOL_ASSERTS subkey 'READ-ONLY_VIOLATION'
                     fields ME->MY_INSTANCE_KEY->OBJECT_NAME
                            IV_ATTR_NAME
                     condition ME->CHANGEABLE = ABAP_TRUE.
            endif.
    and in debugging I found that if part ( ME->IS_CHANGEABLE( ) = ABAP_TRUE and
               LV_PROPS_OBJ->GET_PROPERTY_BY_IDX( LV_IDX ) ne IF_GENIL_OBJ_ATTR_PROPERTIES=>READ_ONLY) fails and hence else part is getting executed and hence my field a real read-only field or a display mode violation is happening according to comments in code.
    What shall I do so that I would be able to change the screen field value?
    Any help would be highly appreciated.
    Regards,
    Vimal

    Hi,
    Try this:
    data: lr_entity type cl_crm_bol_entity.
    lr_entity = me->typed_context->crechkresph->collection_wrapper->get_current( ).
    lr_entity->set_property( iv_attr_name = 'PO_NUMBER' value = '').
    Also, make sure the field is not read-only.
    Regards
    Prasenjit

  • Where is the "set" method for this ELEMENT?

    Hi
    I'm trying to understand the relationship between the DTD and XJS, and the JAXB generated code.
    Consider the example DTD, XJS, and generated source code (i.e., "value07.java") for ELEMENT value07, below ...
    QUESTION#1: Why is there no "set" method generated for ELEMENT "value07a" within the generated value07.java ???
    QUESTION#2: How to I code the DTD/XJS in order to force the generation of a "set" method in value07.java???.
    -- I want to be able to set a new value for ELEMENT "value07a" in order to generate an XML document containing the new value!!
    (NOTE: the reason that ELEMENT value07 (as well as other ELEMENTs) has only a single subelement, is in order to satisfy the XSLT definition in a preexisting application.)
    * * * this is the DTD* * *
    <!ELEMENT request                          (value01,value02,value03,value04,value05?,value06?,value07?,value08?,value09?,value10?,value11?,value12?,value13?,value14?,value15?,value16?,value17?,value18?)>
    <!ELEMENT value01                          (#PCDATA)>
    <!ELEMENT value02                          (#PCDATA)>
    <!ELEMENT value03                          (#PCDATA)>
    <!ELEMENT value04                          (value04a, value04b?)>
    <!ELEMENT value04a                          (#PCDATA)>
    <!ELEMENT value04b                          (#PCDATA)>
    <!ELEMENT value05                          (value05a, value05b?)>
    <!ELEMENT value05a                          (#PCDATA)>
    <!ELEMENT value05b                          (#PCDATA)>
    <!ELEMENT value06                          (value06a+)>
    <!ELEMENT value06a                          (#PCDATA)>
    <!ELEMENT value07                          (value07a+)>
    <!ELEMENT value07a                          (#PCDATA)>
    <!ELEMENT value08                          (value08a+)>
    <!ELEMENT value08a                          (#PCDATA)>
    <!ELEMENT value09                          (value09a+)>
    <!ELEMENT value09a                          (#PCDATA)>
    <!ELEMENT value10                          (value10a+)>
    <!ELEMENT value10a                          (#PCDATA)>
    <!ELEMENT value11                          (value11a+)>
    <!ELEMENT value11a                          (#PCDATA)>
    <!ELEMENT value12                          (value12a+)>
    <!ELEMENT value12a                          (#PCDATA)>
    <!ELEMENT value13                          (value13a+)>
    <!ELEMENT value13a                          (#PCDATA)>
    <!ELEMENT value14                          (value14a+)>
    <!ELEMENT value14a                          (#PCDATA)>
    <!ELEMENT value15                          (value15a+)>
    <!ELEMENT value15a                          (#PCDATA)>
    <!ELEMENT value16                          (value16a+)>
    <!ELEMENT value16a                          (#PCDATA)>
    <!ELEMENT value17                          (value17a+)>
    <!ELEMENT value17a                          (#PCDATA)>
    <!ELEMENT value18                          (value18a+)>
    <!ELEMENT value18a                          (#PCDATA)>
    * * * this is the XJS * * *
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE xml-java-binding-schema SYSTEM "http://java.sun.com/dtd/jaxb/1.0-ea/xjs.dtd">
    <xml-java-binding-schema version="1.0-ea">
    <options package="testSourceCode"/>
    <element name="request" type="class" root="true"/>
         <element name="value01"                               type="value"/>
         <element name="value02"                               type="value"/>
         <element name="value03"                          type="value"/>
         <element name="value04" type="class">
              <content>
                   <element-ref name="value04a" />
                   <element-ref name="value04b" />
              </content>
         </element>
         <element name="value05" type="class">
              <content>
                   <element-ref name="value05a" />
                   <element-ref name="value05b" />
              </content>
         </element>
         <element name="value06" type="class">
              <content>
                   <element-ref name="value06a" />
              </content>
         </element>
         <element name="value07" type="class">
              <content>
                   <element-ref name="value07a" />
              </content>
         </element>
         <element name="value08" type="class">
              <content>
                   <element-ref name="value08a" />
              </content>
         </element>
         <element name="value09" type="class">
              <content>
                   <element-ref name="value09a" />
              </content>
         </element>
         <element name="value10" type="class">
              <content>
                   <element-ref name="value10a" />
              </content>
         </element>
         <element name="value11" type="class">
              <content>
                   <element-ref name="value11a" />
              </content>
         </element>
         <element name="value12" type="class">
              <content>
                   <element-ref name="value12a" />
              </content>
         </element>
         <element name="value13" type="class">
              <content>
                   <element-ref name="value13a" />
              </content>
         </element>
         <element name="value14" type="class">
              <content>
                   <element-ref name="value14a" />
              </content>
         </element>
         <element name="value15" type="class">
              <content>
                   <element-ref name="value15a" />
              </content>
         </element>
         <element name="value16" type="class">
              <content>
                   <element-ref name="value16a" />
              </content>
         </element>
         <element name="value17" type="class">
              <content>
                   <element-ref name="value17a" />
              </content>
         </element>
         <element name="value18" type="class">
              <content>
                   <element-ref name="value18a" />
              </content>
         </element>
    </xml-java-binding-schema>
    * * * generated sourcecode for ELEMENT "value07"...i.e., "value07.java" * * *
    package testSourceCode;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import javax.xml.bind.ConversionException;
    import javax.xml.bind.Dispatcher;
    import javax.xml.bind.Element;
    import javax.xml.bind.InvalidAttributeException;
    import javax.xml.bind.InvalidContentObjectException;
    import javax.xml.bind.LocalValidationException;
    import javax.xml.bind.MarshallableObject;
    import javax.xml.bind.Marshaller;
    import javax.xml.bind.MissingContentException;
    import javax.xml.bind.PredicatedLists;
    import javax.xml.bind.PredicatedLists.Predicate;
    import javax.xml.bind.StructureValidationException;
    import javax.xml.bind.UnmarshalException;
    import javax.xml.bind.Unmarshaller;
    import javax.xml.bind.Validator;
    import javax.xml.marshal.XMLScanner;
    import javax.xml.marshal.XMLWriter;
    public class Value07
    extends MarshallableObject
    implements Element
    private List _Value07A = PredicatedLists.createInvalidating(this, new Value07APredicate(), new ArrayList());
    private PredicatedLists.Predicate pred_Value07A = new Value07APredicate();
    public List getValue07A() {
    return _Value07A;
    public void deleteValue07A() {
    _Value07A = null;
    invalidate();
    public void emptyValue07A() {
    Value07A = PredicatedLists.createInvalidating(this, predValue07A, new ArrayList());
    public void validateThis()
    throws LocalValidationException
    if (_Value07A == null) {
    throw new MissingContentException("value07a");
    public void validate(Validator v)
    throws StructureValidationException
    public void marshal(Marshaller m)
    throws IOException
    XMLWriter w = m.writer();
    w.start("value07");
    for (Iterator i = _Value07A.iterator(); i.hasNext(); ) {
    w.leaf("value07a", ((String) i.next()).toString());
    w.end("value07");
    public void unmarshal(Unmarshaller u)
    throws UnmarshalException
    XMLScanner xs = u.scanner();
    Validator v = u.validator();
    xs.takeStart("value07");
    while (xs.atAttribute()) {
    String an = xs.takeAttributeName();
    throw new InvalidAttributeException(an);
    List l = new ArrayList();
    while (xs.atStart()) {
    if (xs.atStart("value07a")) {
    xs.takeStart("value07a");
    String s;
    if (xs.atChars(XMLScanner.WS_COLLAPSE)) {
    s = xs.takeChars(XMLScanner.WS_COLLAPSE);
    } else {
    s = "";
    String uf;
    try {
    uf = String.valueOf(s);
    } catch (Exception x) {
    throw new ConversionException("value07a", x);
    l.add(uf);
    xs.takeEnd("value07a");
    } else {
    break;
    Value07A = PredicatedLists.createInvalidating(this, predValue07A, l);
    xs.takeEnd("value07");
    public static Value07 unmarshal(InputStream in)
    throws UnmarshalException
    return unmarshal(XMLScanner.open(in));
    public static Value07 unmarshal(XMLScanner xs)
    throws UnmarshalException
    return unmarshal(xs, newDispatcher());
    public static Value07 unmarshal(XMLScanner xs, Dispatcher d)
    throws UnmarshalException
    return ((Value07) d.unmarshal(xs, (Value07 .class)));
    public boolean equals(Object ob) {
    if (this == ob) {
    return true;
    if (!(ob instanceof Value07)) {
    return false;
    Value07 tob = ((Value07) ob);
    if (_Value07A!= null) {
    if (tob._Value07A == null) {
    return false;
    if (!_Value07A.equals(tob._Value07A)) {
    return false;
    } else {
    if (tob._Value07A!= null) {
    return false;
    return true;
    public int hashCode() {
    int h = 0;
    h = ((127 *h)+((_Value07A!= null)?_Value07A.hashCode(): 0));
    return h;
    public String toString() {
    StringBuffer sb = new StringBuffer("<<value07");
    if (_Value07A!= null) {
    sb.append(" value07a=");
    sb.append(_Value07A.toString());
    sb.append(">>");
    return sb.toString();
    public static Dispatcher newDispatcher() {
    return Request.newDispatcher();
    private static class Value07APredicate
    implements PredicatedLists.Predicate
    public void check(Object ob) {
    if (!(ob instanceof String)) {
    throw new InvalidContentObjectException(ob, (String.class));

    I discovered something similar this morning...i.e., for
    <element name="value07" type="class">
    <content>
    <element-ref name="value07a" />
    </content>
    </element>
    -- I did something like this...
    Value7 v7 = new Value7();
    for (int i=0; i< Value7_input_array.length; i++)
    ((List)(v7.getValue07A())).add(Value7_input_array);
    Thanks for responding, barry!

  • How to generate dynemic GET/SET Method in Struts.....

    hi,
    experts,
    i m doing struts application and i get struct at generatting GET/SET properties for my Dynemic html form in that form i fetch control name and related properties from database and i want to access this properties in action with the help of form which generates dynemic GET/SET properties depends on form controls
    how would i do please give some hints...
    example:
    my html form:
    <html:text name="bpmAttrForm" property="attrName"></html:text>
    . dynemic controls( i don't no how many )
    my form in struts
    public void getX()
    public void setX()
    .... dynemic GET/SET Properties ( i don't no how many )
    like this....
    thnks.....

    Hi ,
    You would have to create a Dynamic form class extending DynaActionForm and ovrride get and set method. In the implementation you access the dyanValues HashMap of DyanActionForm to set and get values from it.
    package yourpackage;
    import org.apache.struts.action.DynaActionForm;
    public class DynaForm extends DynaActionForm
      public Object get(String name)
          Object value = dynaValues.get(name);
          return (value);
      public void set(String name, Object value)
          dynaValues.put(name, value);
    }now in your struts configuration would be
    <form-bean name="myDynaForm" type="yourpackage.DynaForm" />
    if your action class execute method you would have to add and retrive your form properties through the map.
    DynaActionForm myDynaForm = (DynaActionForm) form;
    String prop1  = (String)myDyanaForm .get(propertyName);in your jsp you can access properties using expression library
    ${myDynaForm.map.propertyName}
    Cheers
    Masood

  • Creating shared library of native method implementation using gcc

    Hi
    I am using Dev-C++ IDE for writing and compiling C Programs. It supports gcc.
    I have to build a shared library of a native method implementation using gcc compiler.
    In JNI tutorial build script is given for VC++ which is as follows
    cl -Ic:\java\include -Ic:\java\include\win32
    -LD HelloWorldImp.c -Fehello.dll
    Similarly I wanted build script for gcc compiler.
    Thanks
    Shailesh

    Here is an example of building a library from one module with CygWin's gcc:
    # Must set JAVA_HOME and LIBRARY_MODULE before
    gcc -mno-cygwin -D__int64="long long" -I $JAVA_HOME/include/win32 -I $JAVA_HOME/include -shared -Wl,--kill-at -o $LIBRARY_MODULE.dll $LIBRARY_MODULE.c

  • Why do we need get and set methods?

    It is considered good design practice to keep all class data private and
    provide get and set methods for accessing the data in a controlled
    manner.
    So, instead of directly accessing the class data, you use getter and setters.
    I do not really feel the need to use get and set methods.
    How does that achieve encapsulation when ultimately the class data is being exposed?

    A couple of reasons why to use get and set:
    1. For example you can set an int value for month, if a user sets this to somting
    higher than 12 (or 11 if it's zero based) you want to handle that by either
    throwing an exception or adding a year for every time it can be devided by 12.
    If you dont do it in set you'll have a whole bunch of methods that might need to
    correct the value before retreiving the eventual date.
    2. If for some reason you have security set up for certain values you can
    implement this in the get method. When this is done somewhere else you have
    a whole bunch of methods retreiving the info in other classes that need to check
    first. (a canGet method could allso be used). Another good reason to use get
    is when the information needs to be converted depending on the consumer
    calling the get method.
    3. If any logic in 1 or 2 changes you'll have a bunch of code to change.
    If you feel there is no need to implement any security, error handling (on
    compiling because get and set might throw something) or validation when
    setting/getting these values there is still the argument of readabillity.
    Eclipse has a feature that will generate getters and setters for you so it's not
    like there is a lot of extra typing involved.
    Got interupted whyle typig so sorry to repeat any answer given before.

  • Unable to find setter method for attribute:

    I am using Jboss jboss-4.2.3.GA, JDK 1.6.
    I am trying to deploy our application on Jboss. When loading sources page or whenever we try to load the taglib we are getting the following error.
    org.apache.jasper.JasperException: jspfile.jsp(67,1) Unable to find setter method for attribute: collection
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:2736)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:2965)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2169)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1689)
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2388)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2394)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:489)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2338)
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3374)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:210)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
    at com.ssmb.common.servlets.GenericControllerServlet.service(GenericControllerServlet.java:639)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
    at java.lang.Thread.run(Thread.java:619)
    The line corresponding in JSP file is ,
    <ssmb:list name="src_" collection="sources" showAll='<%= "" + true %>'>
    Please let me know if you have faced this issue before.

    Have you written this tag in a tld or a tag file?
    How have you declared the attribute "collection"?
    Does the class which implements the custom tag <ssmb:list> have a method in it: public void setCollection(String collection) ?

  • Setter method for custom action attributes

    Hello,
    I'm using Sun App server. The container is saying I need to implement a setter method for a custom action attribute? I defined a set<variable() and this didn't fix the problem. What kind of setter method is it expecting?

    nevermind, found solution

  • Multiple setter methods

    Hi i have a jsp page that sets the value of a bean which has two setter methods for the same property but with different signatures the jsp code is
    <jsp:useBean id="version" scope="session" class="data.PeriodVersion"/>
    <jsp:setProperty name="version" property="version"/>
    <jsp:useBean id="dbSelector"  scope="session" class="configuration.DatabaseSelector"/>
    <jsp:setProperty name="dbSelector" property="version" value="<%= version %>"/>the java code is
        public void setVersion(int version){
            this.version = new PeriodVersion(version);
        public void setVersion (PeriodVersion version){
            this.version = version;
        }when run using tomcat this code gives an "argument mismatch" error
    however when i remove one of the setter methods it works
    does this mean that beans should only have one setter method. this seems very inflexible. or i am doing something wrong
    thx in advance

    Well, I guess I could have explained this upfront and saved a few people some headaches, but I was more concerned with why the code didn't work. Mostly, because I wasn't sure if I was going to implement that kind of system.
    Basically, it's a game using cards (not standard cards) and each one does a specific action. Really though, it's just increasing and decreasing values and setting flags. So, certain cards set flags that prevent you from doing anything until you play another specific card which counters that action and resets that boolean value, allowing you to continue on your merry way. There are specific cards that set specific flags and other cards that counter those. However (and this is the part that has me troubled), there is a card that can counter any of those previous actions and reset any flag back to false.
    I am not sure, other than an if or case statement how to implement this behavior. Once you play it, the human can choose which target to counter (flag to reset), and I am unsure of how to make a method that accepts the user's choice and carry on that action on the required variable. I mean, I do, and it wouldn't be the worst thing in the world to use an if-else if statement since there's only about 4 or 5 choices. I am just still learning and not totally content to one way of doing things.
    I don't care if I need to make them private with their own get and set methods, or if I just need to make them public and have the methods alter them directly. It's the one wildcard option that gets me confused.
    And, by best, I just meant I was looking for alternatives, and that I'll find out that will suit my needs best.
    I think, from now on, I should just explain what I'm trying to do in the first place, but I like to first test everything by taking code snippets and creating sub-experiments on the side to see if I can figure it out myself first.
    Edited by: mhoribe on Apr 27, 2009 3:44 PM

  • Do Get-Set methods break encapsulation?

    Some of my mates, who have been programming more time than me, say tha if you have a private variable which is accesible v�a two public methods "get" and "set" this breaks the encapsulation principle, and is equivalent to do the variable public, as anybody can read or modigy thge variable.
    I disagree, I think that two public get set methods still hide the implementation, you can acces directly to the variable, and so don't break the encapsulation principle.
    Can anybody tell me if I or them are right?

    As everybody else in the thread has indicated, accessors do not
    necessarily break encapsulation. However, I do not think the situation is as
    cut and dried as everybody seems to be making out.
    Accessors (by definition?) provide a mechanism to safely modify the member data of an object. Generally accessors match 1:1 the member data of an object (at least initially). By looking at accessors it is generally possible to make some good guesses about what member data an object contains. Which is a Bad Thing(TM). Of course, over time, accessors may reflect underlying implementation less and less accurately (which is when they become useful).
    Many years ago when I started OO programming, most "accepted" wisdom was that methods should represent object behaviour. For this reason, accessors were generally deemed to be a bad thing, and led to poorly encapsulated objects (since they do not really model behaviour; if you fill your car's petrol tank with petrol (gas? :>), "car.fillTank()" is preferred to
    "car.setCurrentTankVolume(car.getMaxTankCapacity())" in this mindset.
    The first defines object behaviour, and is safe, the second uses accessors to perform the same task (and is also pretty safe, but far less expressive).
    Generally I'd avoid accessors if only on the argument of them making code less clear and self-documenting, but that's a personal viewpoint.
    Another way to look at it is that accessors as most people view them are implemented after the member data has been defined; I prefer to break my object behaviour down first, define methods, and then define member data as needed to support the behaviour my object will exhibit.
    I certainly use accessors; a bank balance object is highly likely to have a "getBalance()" method. It's less likely to have a "setBalance()" object (very few people ever go into a bank and "set their balance". They always "make deposits" or "make withdrawals". They do, however, often "get their balance"). But my member data is derived from the object behaviour (including these "accessors") rather than vice versa. Are these "accessors" still "accessors"? A "setBalance()" method might be useful if the balance object is stored in a database so the database layer can populate it - but this is a design decision that should be taken in a measured way rather than "I have a balance member, let's add accessors".
    My guess is you would say "yes", whereas your friends would say "no"!

  • Set Methods are not running

    I am writing my first jsp. I have a bean that I am wanting to use and my understanding is that if I put the following commands in, that all the set methods for my properties will run in the bean automatically as long as the names of the properties are the same as those on the form.
    <jsp:useBean id="MedicalBean" class="Project5.MedicalReimbursementRecord" scope="session"/>
    <jsp:setProperty name="MedicalBean" property="*"/>
    The form has a number of textboxes, each text box has a name of one of the properties in my bean. I put display in my bean and I know that it is never running any of the "set" methods for any of the properties. I know that it is indeed getting into my bean, as I have displayed which indicate that methods that I request are indeed running.
    I have not "ACTION" parameter on the FORM, but I have looked at the examples in Tomcat and they have forms which do not have an "Action". I don't think this is a problem, but maybe I am wrong about that. If I put in the statement of:
    <jsp:setProperty name="MedicalBean" property="GrpAcctNbr"/>
    Then I get the error "Cannot find any information on property 'GrpAcctMbr' in a bean of type 'Project5.MedicalReimbursementRecord'"
    So there must be something wrong with my setProperty statement, but what is it?
    Thanks in advance for your assistance.

    Can you show the relevant JSP code and set/get methods in the bean?
    Sometimes this error is caused by capitalization. e.g. a request param of "myName" calls setMyName(). Also, your bean must have a no arguments constructor.
    Also, if you don't specify an action,the form submits to the current URL so you should be ok. Are you sure that the JSP runs when the user submits the form?

  • Getter/setter methods -- how do I use the return values

    I'm just learning Java, and I haven't been to this site since the end of July, I think. I have a question regarding getter and setter methods. I switched to the book Head First Java after a poster here recommended it. I'm only about a hundred pages into the book, so the code I'm submitting here reflects that. It's the beginnings of a program I'd eventually like to complete that will take the entered information of my CD's and alphabetize them according to whatever criteria I (or any user for that matter) choose. I realize that this is just the very beginning, and I don't expect to have the complete program completed any time soon -- it's my long term goal, but I thought I could take what I'm learning in the book and put it to practical use as I go along (or at lest try to).
    Yes I could have this already done it Excel, but where's the fun and challenge in that? :) Here's the code:
    // This program allows the user to enter CD information - Artist name, album title, and year of release -- and then organizes it according the the user's choice according to the user's criteria -- either by artist name, then title, then year of release, or by any other order according to the user's choice.
    //First, the class CDList is created, along with the necessary variables.
    class CDList{
         private String artistName;//only one string for the artist name -- including spaces.
         private String albumTitle;//only one string the title name -- including spaces.
         private int yearOfRelease;
         private String recordLabel;
         public void setArtistName(String artist){
         artistName = artist;
         public void setAlbumTitle(String album){
         albumTitle = album;
         public void setYearOfRelease(int yor){
         yearOfRelease = yor;
         public void setLabel(String label){
         recordLabel = label;
         public String getArtistName(){
         return artistName;
         public String getAlbumTitle(){
         return albumTitle;
         public int getYearOfRelease(){
         return yearOfRelease;
        public String getLabel(){
        return recordLabel;
    void printout () {
           System.out.println ("Artist Name: " + getArtistName());
           System.out.println ("Album Title: " + getAlbumTitle());
           System.out.println ("Year of Release: " + getYearOfRelease());
           System.out.println ("Record Label: " + getLabel());
           System.out.println ();
    import static java.lang.System.out;
    import java.util.Scanner;
    class CDListTestDrive {
         public static void main( String[] args ) {
              Scanner s=new Scanner(System.in);
              CDList[] Record = new CDList[4];
              int x=0;     
              while (x<4) {
              Record[x]=new CDList();
              out.println ("Artist Name: ");
              String artist = s.nextLine();
              Record[x].setArtistName(artist);
              out.println ("Album Title: ");
              String album = s.nextLine();
              Record[x].setAlbumTitle(album);
              out.println ("Year of Release: ");
              int yor= s.nextInt();
                    s.nextLine();
              Record[x].setYearOfRelease(yor);
              out.println ("Record Label: ");
              String label = s.nextLine();
              Record[x].setLabel(label);
              System.out.println();
              x=x+1;//moves to next CDList object;
              x=0;
              while (x<4) {
              Record[x].getArtistName();
              Record[x].getAlbumTitle();
              Record[x].getYearOfRelease();
              Record[x].getLabel();
              Record[x].printout();
              x=x+1;
                   out.println("Enter a Record Number: ");
                   x=s.nextInt();
                   x=x-1;
                   Record[x].getArtistName();
                Record[x].getAlbumTitle();
                Record[x].getYearOfRelease();
                Record[x].getLabel();
                Record[x].printout();
         }//end main
    }//end class          First, I'd like to ask anyone out there to see if I could have written this any more efficiently, with the understanding that I'm only one hundred pages into the book, and I've only gotten as far as getter and setter methods, instance variables, objects and methods. The scanner feature I got from another book, but I abandoned it in favor of HFJ.
    Secondly --
    I'm confused about getter and setter methods -- I'd like someone to explain to me what they are used for exactly and the difference between the two. I have a general idea, that getters get a result from the method and setters set or maybe assign a value to variable. I submitted this code on another site, and one of the responders told me I wasn't using the returned values from the getter methods (he also told me about using a constructor method, but I haven't got that far in the book yet.). The program compiles and runs fine, but I can't seem to figure out how I'm not using the returned values from the getter methods. Please help and if you can explain in 'beginners terms,' with any code examples you think are appropriate. It will be greatly appreciated.
    By the way, I'm not a professional programmer -- I'm learning Java because of the intellectual exercise and the fun of it. So please keep that in mind as well.
    Edited by: Straitsfan on Sep 29, 2009 2:03 PM

    Straitsfan wrote:
    First, I'd like to ask anyone out there to see if I could have written this any more efficiently, with the understanding that I'm only one hundred pages into the book, and I've only gotten as far as getter and setter methods, instance variables, objects and methods. The scanner feature I got from another book, but I abandoned it in favor of HFJ.Yes, there is tons you could have done more efficiently. But this is something every new programmer goes through, and I will not spoil the fun. You see, in 3 to 6 months when you have learned much more Java, assuming you stick with it, you will look back at this and be like "what the hell was I thinking" and then realize just haw far you have come. So enjoy that moment and don't spoil it now by asking for what could have been better/ more efficient. If it works it works, just be happy it works.
    Straitsfan wrote:
    Secondly --
    I'm confused about getter and setter methods -- I'd like someone to explain to me what they are used for exactly and the difference between the two. I have a general idea, that getters get a result from the method and setters set or maybe assign a value to variable. I submitted this code on another site, and one of the responders told me I wasn't using the returned values from the getter methods (he also told me about using a constructor method, but I haven't got that far in the book yet.). The program compiles and runs fine, but I can't seem to figure out how I'm not using the returned values from the getter methods. Please help and if you can explain in 'beginners terms,' with any code examples you think are appropriate. It will be greatly appreciated.
    By the way, I'm not a professional programmer -- I'm learning Java because of the intellectual exercise and the fun of it. So please keep that in mind as well.First, if you posted this somewhere else you should link to that post, it is good you at least said you did, but doubleposting is considered very rude because what inevitably happens in many cases is the responses are weighed against each other. So you are basically setting anyone up who responds to the post for a trap that could make them look bad when you double post.
    You are setting you getters and setters up right as far as I can tell. Which tells me that I think you grasp that a getter lets another class get the variables data, and a setter lets another class set the data. One thing, be sure to use the full variable name so you should have setRecordLabel() and getRecodLabel() as opposed to setLabel() and getLabel(). Think about what happens if you go back and add a label field to the CDList class, bad things the way you have it currently. Sometimes shortcuts are not your friend.
    And yes, you are using the getters all wrong since you are not saving off what they return, frankly I am suprised it compiles. It works because you don't really need to use the getters where you have them since the CDList Record (should be lowercase R by the way) object already knows the data and uses it in the printout() method. Basically what you are doing in lines like:
    Record[x].getArtistName();is asking for the ArtistName in Record[x] and then getting the name and just dropping it on the floor. You need to store it in something if you want to keep it, like:
    String artistName = Record[x].getArtistName();See how that works?
    Hope this helped, keep up the good learning and good luck.
    JSG

  • How to call setter Method of ActionScript class with in a Flex Application

    Hi
    I have Action class as shown :
    public class MyClass
    private var name:String 
    public function get name():String {
        return _initialCount;
    public function set name(name:String):void {
        name = name;
    Now please let me know how can i access this Action class under my Flex Application and call the setter Method of it to set the value for the name .
    For example on entering some data in a TextInput and  click of a submit Button , on to the Event Listener , i want to call the set name method of my ActionScript class .
    Please share your ideas on this .

    Thanks  Gordon for your resonse .
    Say for example my Action class is like this :
    public class MyClass
    private var name:String 
    public function get name():String {
        return name;
    public function set name(name:String):void {
        name = name;
    This is inside the MXML
    I know this way we can do it
    public var myclass:MyClass = new MyClass();
    myclass.name="Kiran";
    Now my query is can we do in this way also ??
    myclass.set name(SomeTextInput.text);
    Please share your views on this , waiting for your replies .
    Thanks in advance .

  • How to call a set method from within a constructor

    Hello,
    I want to be able to call a set method from within a Scanner, to be used as the argument to pass to the Scanner (from a source file). Here's what i tried:
    private void openFiles()
            input = new Scanner( setSource );              
        and here is the set method:
    public String setSource( String in )
            source = in;
            return source;
        }obviously there will be more code in this method but i'm trying to tackle one problem at a time. Thanks in advance..

    The "String in" declaration says: "Nobody may ever invoke setSource() without specifying a certain String. The content of the String is known at run-time only."
    In no place in your code you say the compiler: "I want the 'in' variable (actually, parameter) of method setSource() to contain the first arg which is passed to the application".
    This is exactly the same mechanism allowing you to write "new Scanner" with something inside the two parentheses.

Maybe you are looking for

  • JSP 1.2 in JDeveloper?

    When will JDeveloper support JSP 1.2? I'm really confused as my JDeveloper (Version is 9.0.2.829) doesn't seem to do JSP 1.2 but the Oracle9iAS Release 2 (which predates the latest/greatest JDeveloper release and shares the 9.0.2 designation) does su

  • I can't add my Widows 7 Professional to my SBS 2003 R2 Domain

    I am working on a Windows 2003 R2 Small Business Systems network, with 6 Windows Vista computers already attached to its domain. I am trying to add a Windows 7 Professional laptop to this domain, but have not been able to make that addition, even tho

  • Joining/adjusting the properties of multiple clips

    In the timeline I have a short video clip I would like to play and then immediately after play it in reverse. I can copy and paste, then reverse the 2nd clip, but now I'd like to change the speed of both of those so that the first starts and the seco

  • Data Guard two Production sites

    I am exploring the best (and least expensive) way to configure Data Guard in our environment. Has anyone had two production environments, each in a different location and set up Standby Data Guard databases across each. For example - Site 1 - Prod RA

  • No sound on You Tube but sound works on other sites.  Any ideas how to fix this?

    What could cause lack of sound on You Tube but not on other sites?  Computer working ok.  Could it be a plug-in issue?  If so, any idea which plug-in?