Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EDT:Code snippets"

Line 1: Line 1:
Please [[#Share_a_code_snippet|share your code snippets]]! <br>
 
 
 
[[Declaring data|Declaring data]]  
 
[[Declaring data|Declaring data]]  
  
[[Writing logic|Writing logic]]
+
[[Writing basic logic|Writing basic logic]]
 +
 
 +
[[Writing a Rich UI application|Writing a Rich UI application]]
  
 
[[Accessing a service|Accessing a service]]
 
[[Accessing a service|Accessing a service]]
Line 11: Line 11:
  
 
<br>  
 
<br>  
 
+
Please [[#Share_a_code_snippet|share your code snippets]]! <br>
 
+
 
<br>  
 
<br>  
  

Revision as of 18:24, 7 February 2012

Declaring data

Writing basic logic

Writing a Rich UI application

Accessing a service

Interacting with a database



Please share your code snippets!

Rich UI

Services

Calling a REST service

http HttpRest{request.uri="http:host\\myService"};
srvc IRest?;
srvc = ServiceLib.completeBind(srvc, http);

Accessing HTTP request headers

http HttpRest{};
http.request.headers = new Dictionary { param1 = "a value to pass to my service" };
srvc IRest?{@Resource {}};
srvc = ServiceLib.completeBind(srvc, http);

HTTP request and response

function invokeDoSomething()
    call srvc.doSomething() returning to serviceCallback;
end
 
function serviceCallback(returnValueOne String, callbackHttp IHTTP in)
  // process callback request or response
end

Database access

Defining a record

record CUSTOMER type Entity{@table{name = "CUSTOMER"}}   // record is bound to the CUSTOMER table (or view)
    CUSTID string{@id};                                  // primary key field
    NAME string;        
    COUNTRY string;
    STATE string?;                                       // nullable field   
end

Getting a record

function getCustomer(someId String in} returns (Customer)
    ds SQLDataSource?{@resource {}};                       // declares a data source that will use binding name "ds" (since a name is not specified)
 
    aCust Customer;                                        // declares and empty customer record
    get aCust from ds using(someId);                       // gets the record in the table that has a key value of someID and populates the customer record
 
    get aCust from ds using(someId) with #sql{             // alternative approach for getting a single record (allows for customizing the SQL)
	SELECT *
	FROM CUSTOMER
	WHERE id = ?
    };
 
    vals Dictionary;                                       // declares a new dictionary
    get vals from ds using(someId) with #sql{              // alternative approach for getting a single record (does not require a Record definition)
	SELECT *
	FROM CUSTOMER
	WHERE id = ?
     };                                                    // creates a key/value pair in the dictionary for each column in the result set
 
    return (aCust);
end
Getting multiple records
function getCustomer(} returns (Customer[])
    ds SQLDataSource?{@resource {}};                       // declares a data source that will use binding name "ds" (since a name is not specified)
 
    custs Customer[];                                      // declares a new dynamic array of customer records
    get custs from ds;                                     // populates the array with a Customer record for each row in the result set
 
    get custs from ds with #sql {
       select * from customer where state = 'CO'
    };                                                     // populates the array, but with a limited set of Customer records
 
    state String = "CO";
    get custs from ds using(state) with #sql {
       select * from customer where state = ?
    };                                                     // parameterized version of the previous example
 
 
end

Inserting a record

function addCustomer{customer Customer in}
    ds SQLDataSource?{@resource {}};
    add customer to ds;
end

Looping through a SQL result set

 function loopCust()
     ds SQLDataSource?{@resource{uri = "binding:myDB" }};       // declares a new data source 
     rs SQLResultSet?;                                          // declares a new result set
 
     open rs from ds with #sql{                                 // opens a result set using the specified SQL query
	SELECT * FROM CUSTOMER
     };
 
     myCust Customer;
 
     //Loop through results and write out customer name
     while(rs.getNext())
        get myCust from rs;
        Syslib.writeStdOut ("Customer name: " + myCust.name);
     end
 
 end


Share a code snippet

Edit this page by logging in to eclipse.org and clicking the Edit tab. Use the Wikitext editor to add a new snippet. Add the title using Heading 4. Use the source lang="java" tag to provide a background for your snippet and some syntax highlighting.

Back to the top