Patent ID: 7987210

Claim:
A method for creating an object, comprising: receiving an indication to create an instance of a lightweight type for the object; determining whether an associated sharable type is available; in the event that an associated sharable type is not available, declaring a sharable type; determining whether the lightweight type is available; in the event that the lightweight type is not available, declaring the lightweight type, wherein the sharable type is designated as a parent of the lightweight type; determining whether an instance of the sharable type is available; in the event that the instance of the sharable type is not available, creating, in a memory, the instance of a sharable type; creating, in the memory, an instance of a lightweight type, wherein the sharable type is designated as a parent of the lightweight type, wherein the lightweight type inherits behavior from the sharable type; wherein the instance of the lightweight type inherits behavior from the instance of the sharable type; wherein the instance of the sharable type is shared by one or more other instances of the lightweight type, and wherein the instance of the sharable type that is shared by the one or more other instances of the lightweight type has identical data for each of the one or more other instances of the lightweight type and for the instance of the sharable type; and storing, in a database, the object comprising the instance of the lightweight type that is linked to a stored instance of the sharable type.