// Path: sugaronrest/src/test/java/com/sugaronrest/tests/custommodels/CustomAcccount2.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class CustomAcccount2  extends Accounts {
// 
//     public List<Contacts> getContactLink() {
//         return contactLink;
//     }
// 
//     public void setContactLink(List<Contacts> value) {
//         contactLink = value;
//     }
// 
//     public List<Leads> getLeadLink() {
//         return leadLink;
//     }
// 
//     public void setLeadLink(List<Leads> value) {
//         leadLink = value;
//     }
// 
//     public List<Cases> getCaseLink() {
//         return caseLink;
//     }
// 
//     public void setCaseLink(List<Cases> value) {
//         caseLink = value;
//     }
// 
// 
//     @JsonProperty("contacts")
//     private List<Contacts> contactLink;
// 
//     @JsonProperty("leads")
//     private List<Leads> leadLink;
// 
//     @JsonProperty("cases")
//     private List<Cases> caseLink;
// }
// 
// Path: sugaronrest/src/test/java/com/sugaronrest/tests/custommodels/CustomAcccount3.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class CustomAcccount3  extends Accounts {
// 
//     public List<Leads> getLeadLink() {
//         return leadLink;
//     }
// 
//     public void setLeadLink(List<Leads> value) {
//         leadLink = value;
//     }
// 
//     public List<Cases> getCaseLink() {
//         return caseLink;
//     }
// 
//     public void setCaseLink(List<Cases> value) {
//         caseLink = value;
//     }
// 
//     @JsonProperty("leads")
//     private List<Leads> leadLink;
// 
//     @JsonProperty("cases")
//     private List<Cases> caseLink;
// }


import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sugaronrest.*;
import com.sugaronrest.modules.*;
import com.sugaronrest.tests.custommodels.CustomAcccount1;
import com.sugaronrest.tests.custommodels.CustomAcccount2;
import com.sugaronrest.tests.custommodels.CustomAcccount3;
import com.sugaronrest.utils.JsonObjectMapper;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.sugaronrest.QueryOperator.*;
        request.getOptions().setMaxResult(5);

        List<String> selectedFields = new ArrayList<String>();

        selectedFields.add(NameOf.Accounts.Id);
        selectedFields.add(NameOf.Accounts.Name);
        selectedFields.add(NameOf.Accounts.Industry);
        selectedFields.add(NameOf.Accounts.Website);
        selectedFields.add(NameOf.Accounts.ShippingAddressCity);

        request.getOptions().setSelectFields(selectedFields);

        Map<Object, List<String>> linkedListInfo = new HashMap<Object, List<String>>();

        List<String> selectContactFields = new ArrayList<String>();
        selectContactFields.add(NameOf.Contacts.FirstName);
        selectContactFields.add(NameOf.Contacts.LastName);
        selectContactFields.add(NameOf.Contacts.Title);
        selectContactFields.add(NameOf.Contacts.Description);
        selectContactFields.add(NameOf.Contacts.PrimaryAddressPostalcode);

        linkedListInfo.put(Contacts.class, selectContactFields);
        request.getOptions().setLinkedModules(linkedListInfo);

        SugarRestResponse response = client.execute(request);

        String jsonData = response.getJData();

        // Deserialize json data to custom object
        ObjectMapper mapper = JsonObjectMapper.getMapper();
// Path: sugaronrest/src/test/java/com/sugaronrest/tests/custommodels/CustomAcccount2.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class CustomAcccount2  extends Accounts {
// 
//     public List<Contacts> getContactLink() {
//         return contactLink;
//     }
// 
//     public void setContactLink(List<Contacts> value) {
//         contactLink = value;
//     }
// 
//     public List<Leads> getLeadLink() {
//         return leadLink;
//     }
// 
//     public void setLeadLink(List<Leads> value) {
//         leadLink = value;
//     }
// 
//     public List<Cases> getCaseLink() {
//         return caseLink;
//     }
// 
//     public void setCaseLink(List<Cases> value) {
//         caseLink = value;
//     }
// 
// 
//     @JsonProperty("contacts")
//     private List<Contacts> contactLink;
// 
//     @JsonProperty("leads")
//     private List<Leads> leadLink;
// 
//     @JsonProperty("cases")
//     private List<Cases> caseLink;
// }
// 
// Path: sugaronrest/src/test/java/com/sugaronrest/tests/custommodels/CustomAcccount3.java
// @JsonIgnoreProperties(ignoreUnknown = true)
// public class CustomAcccount3  extends Accounts {
// 
//     public List<Leads> getLeadLink() {
//         return leadLink;
//     }
// 
//     public void setLeadLink(List<Leads> value) {
//         leadLink = value;
//     }
// 
//     public List<Cases> getCaseLink() {
//         return caseLink;
//     }
// 
//     public void setCaseLink(List<Cases> value) {
//         caseLink = value;
//     }
// 
//     @JsonProperty("leads")
//     private List<Leads> leadLink;
// 
//     @JsonProperty("cases")
//     private List<Cases> caseLink;
// }


// Path: sugaronrest/src/test/java/com/sugaronrest/tests/WikiTests.java
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sugaronrest.*;
import com.sugaronrest.modules.*;
import com.sugaronrest.tests.custommodels.CustomAcccount1;
import com.sugaronrest.tests.custommodels.CustomAcccount2;
import com.sugaronrest.tests.custommodels.CustomAcccount3;
import com.sugaronrest.utils.JsonObjectMapper;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.sugaronrest.QueryOperator.*;

        request.getOptions().setMaxResult(5);

        List<String> selectedFields = new ArrayList<String>();

        selectedFields.add(NameOf.Accounts.Id);
        selectedFields.add(NameOf.Accounts.Name);
        selectedFields.add(NameOf.Accounts.Industry);
        selectedFields.add(NameOf.Accounts.Website);
        selectedFields.add(NameOf.Accounts.ShippingAddressCity);

        request.getOptions().setSelectFields(selectedFields);

        Map<Object, List<String>> linkedListInfo = new HashMap<Object, List<String>>();

        List<String> selectContactFields = new ArrayList<String>();
        selectContactFields.add(NameOf.Contacts.FirstName);
        selectContactFields.add(NameOf.Contacts.LastName);
        selectContactFields.add(NameOf.Contacts.Title);
        selectContactFields.add(NameOf.Contacts.Description);
        selectContactFields.add(NameOf.Contacts.PrimaryAddressPostalcode);

        linkedListInfo.put(Contacts.class, selectContactFields);
        request.getOptions().setLinkedModules(linkedListInfo);

        SugarRestResponse response = client.execute(request);

        String jsonData = response.getJData();

        // Deserialize json data to custom object
        ObjectMapper mapper = JsonObjectMapper.getMapper();
        JavaType type = mapper.getTypeFactory().constructCollectionType(ArrayList.class, CustomAcccount2.class) ;