Tuesday 17 September 2013

Annotations in salesforce

Annotations are defined with an initial
@
 symbol, followed by the appropriate keyword. To add an annotation to a method, specify it immediately before the method or class definition.
Apex supports the following annotations:
S.NoApex Annotation NameDescriptionExample
1@isTestDefines classes that only
contain code used for
testing your application.
These classes don’t count
against the total amount
of Apex used by your
organization.
@isTest private class MyTest {
// Methods for testing
}
2@isTest(
OnInstall=true)
Defines a test class or test
method that executes on
package installation
@isTest(OnInstall=true)
private class TestClass
{
}
3@isTest(
SeeAllData=true)
Defines a test class or test
method that has access to
all data in the organization
including pre-existing data
that the test didn’t create.
The default is false.
@isTest(SeeAllData=true)
private class TestClass
{
}
4@deprecatedIdentifies methods,
classes, exceptions,
enums, interfaces, or
variables that can no
longer be referenced in
subsequent releases of
the managed package in
which they reside

@deprecated
public void limitedShelfLife()
{
}
5@readOnlyDefines methods that
can perform queries
unrestricted by the number
of returned rows limit for a
request

@readOnly
private void doQuery()
{
}
6@remoteAction


Defines Apex controller
methods that JavaScript
code can call from a
Visualforce page via
JavaScript remoting. The
method must be static and
either public or global.
@remoteAction
global static String getId(
String s)
{
}
7@restResourceIdentifies a class that
is available as a REST
resource. The class must
be global. The urlMapping
parameter is your
resource’s name and is
relative to https://instance.
salesforce.com/services/
apexrest/.

@restResource(urlMapping=
‘/Widget/*’)
global with sharing class
MyResource()
{
}
8@httpGet,
@httpPost,
@httpPatch,
@httpPut,
@httpDelete

Defines a REST method
in a class annotated with
@restResource that
the runtime invokes when
a client sends an HTTP
GET, POST, PATCH,
PUT, or DELETE
respectively.
The methods defined with
any of these annotations
must be global and static.

@httpGet
global static MyWidget__c doGet()
{
}
@httpPost
global static void doPost()
{
}
@httpDelete
global static void doDelete()
{
}
9@futureIdentifies methods
that are executed
asynchronously

global class MyFutureClass {
@future
static void myMethod(
String a, Integer i) {
System.debug(
‘Method called with: ‘ + a +
‘ and ‘ + i);
// do callout, other long
// running code
}
}

No comments:

Post a Comment