Search code examples
salesforceapex-code

Salesforce Apex


I need help in getting the syntax right for the class. I have 2 classes say class1 and class2. Both have a sub class type as return type. How can I get the variable from one class return to the other one parsed as below?

public class class1 {

    public class Result1 
    {
        public Decimal a1 { get; set; }
        public Decimal b1 { get; set; }
        public Decimal c1 { get; set; }
        public Decimal d1 { get; set; }
    }

    public Result1 method1 (id recId) 
    {  
        ... some logic...
        ......

        Result1 r1 = New Result1();
        r1.a1 = some value;
        r1.b1 = some value;
        r1.c1 = some value;

        return r1;
    }
}

global class class2 {

    global class Result2 
    {
        public Decimal a2{get;set;}
        public Decimal b2{get;set;}
        public Decimal c2{get;set;}
        public Decimal d2{get;set;}
    }

    global Result2 method(){ 

        ... some logic...
        ......

        Result2 r2 = New Result2();

        class1 c1 = new class1();

        **r2 = c1.method1(rid);** <-- How can I get the result1 from method1 and parse it and assign                 it to each variable in r2?

        like r2.a2 = c1.method1(rid).a1;
        like r2.b2 = c1.method1(rid).b1;
        like r2.c2 = c1.method1(rid).c1;

   }
}

Solution

  • Thanks Andrew, I got that resolved as below. Hope it will help someone else.

    public class class1 {
    
        public class Result1 {
            public Decimal a1 {get; set;}
            public Decimal b1 {get; set;}
            public Decimal c1 {get; set;}
            public Decimal d1 {get; set;}
        }
    
        public Result1 method1 (id recId ) {
            //... some logic...
    
            Result1 r1 = New Result1();
            r1.a1 = some value;
            r1.b1 = some value;
            r1.c1 = some value;
    
            return r1;
        }
    
    }
    
    global class class2 {
    
        global class Result2 {
            public Decimal a2 {get; set;}
            public Decimal b2 {get; set;}
            public Decimal c2 {get; set;}
            public Decimal d2 {get; set;}
        }
    
        global Result2 method() { 
            //... some logic...
    
            Result2 r2 = New Result2();
    
            class1 c1 = new class1();
            class1.Result1 r1 = new class1.Result1 ();
            r1 = c1.method1(rid);
    
            r2.a2 = r1.a1;
            r2.b2 = r1.b1;
            r2.c2 = r1.c1;
       }
    
    }