IP Library Granted Patent US 7,926,022
Granted Patent B2
US 7,926,022 · App. 11/400,723 · Granted Apr 12, 2011

Surrogate-based and extends-based context look-up

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,926,022
App. No.
11/400,723
Granted
Apr 12, 2011
Kind
B2
Abstract

Methods, apparatus and systems for processing of code that includes key fields having surrogate and extends relationships are described. In some embodiments, a method includes receiving a pattern language code having definitions of a number of classes, wherein a definition of a first class of the number of classes comprises a reference to a field. The method also includes compiling the pattern language code to generate an object code, wherein the compiling comprises validating that the field is defined with a context of the first class. The context includes a second class of the number of classes that has a surrogate relationship with the first class.

Claims (62)

1. A computer-implemented method comprising:

receiving a pattern language code having definitions of a number of classes, wherein a definition of a first class of the number of classes comprises a reference to a first key field, wherein a definition of a second class comprises a reference to a second key field, wherein the first key field references a first external object and the second key field references a second external object, wherein the first external object and the second external object are different external objects, and wherein the first external object is in an ontological relationship with the second external object in order to establish a surrogate relationship; and

compiling, using one or more processors, the pattern language code to generate object code, wherein the compiling comprises validating the surrogate relationship between the first and second classes;

wherein the surrogate relationship defines a relationship where the second class can functionally replace the first class in the compiled object code.

2. The computer-implemented method of claim 1 , wherein the receiving a pattern language code includes a definition of a third class of the number of classes, wherein the definition of the third class includes a reference to a third key field, wherein the third key field references the first external object, and wherein the first and third key fields establish an extends relationship between the first and third classes; and

wherein the compiling the pattern language code to generate an object code includes validating the extends relationship between the first and third classes;

wherein the extends relationship defines a relationship where the third class extends the functionality of the first class in the compiled object code.

3. The computer-implemented method of claim 2 , wherein the receiving a pattern language code includes a definition of a fourth class of the number of classes,

wherein the definition of the fourth class includes a reference to a fourth and a fifth key field,

wherein the fourth key field references a third external object, wherein the third external object is in an ontological relationship with the first external object in order to establish a surrogate relationship,

wherein the fifth key field references the second external object, and wherein the second and fifth key fields establish an extends relationship between the second and fourth classes; and

wherein the compiling the pattern language code to generate an object code includes validating the extends relationship between the second and fourth classes and the surrogate relationship between the third and fourth classes,

wherein the extends relationship defines a relationship where the fourth class extends the functionality of the second class and the surrogate relationship defines a relationship where the fourth class can functionally replace the third class in the complied code.

4. The computer-implemented method of claim 2 , wherein the first class includes characteristics not included in the third class; and

wherein the third class includes characteristics not included in the first class.

5. A computer-implemented method comprising:

receiving pattern code including definitions of a plurality of business classes, wherein a definition of each of the plurality of business classes includes a reference to a key field, wherein each key field of each of the plurality of business classes references an external object of a plurality of external objects, wherein a definition of a first business class of the plurality of business classes includes a reference to a first key field, wherein the first key field references a first external object, wherein the first external object is in an ontological relationship with each of the other external objects and, wherein the ontological relationships include a surrogate relationship between the first external object and one of the other external objects and an extends relationship between the first external object and one of the other external objects; and

compiling, using one or more processors, the code to generate an executable, wherein the compiling includes validating the surrogate and extends relationships between the first business class and the plurality of business classes;

wherein the surrogate relationship defines a relationship where one of plurality of business classes can functionally replace the first business class in the compiled object code;

wherein the extends relationship defines a relationship where one of the plurality of business classes extends the first business class in the compiled object code.

6. The computer-implemented method of claim 5 , further comprising:

generating a compiler error, in response to a determination that the first business class is not in a surrogate or extends relationship with one of the plurality of business classes; and

executing the executable after compiling the code, in response to a determination that no compiler errors were generated.

7. The computer-implemented method of claim 5 , wherein compiling includes establishing a candidate path between the first business class and one of the plurality of business classes through one or more extends and surrogate relationships.

8. The computer-implemented method of claim 5 , wherein compiling includes establishing a plurality of candidate paths among extends and surrogate relationships between the first business class and each of the plurality of business classes.

9. The computer-implemented method of claim 8 , wherein compiling includes assigning a score to each candidate path of the plurality of candidate paths.

10. The computer-implemented method of claim 9 , wherein the score is based on the arrangement of extends and surrogate relationships within the candidate path.

11. The computer-implemented method of claim 10 , wherein the extends and surrogate relationships are weighted differently in determining the scores,

wherein compiling includes selecting a candidate path, from the number of candidate paths, with the lowest score, and

wherein business class of the plurality of business classes with the lowest candidate path score replaces the first business class in the compiled code.

12. A computer-implemented method comprising:

receiving a pattern language code having definitions of a number of classes,

wherein a definition of a first class of the number of classes includes references to a first key and a second key field,

wherein a definition of a second class of the number of classes includes references to a third and a fourth key field,

wherein a definition of a third class includes references to a fifth and a sixth key field,

wherein a definition of a fourth class includes references to a Seventh and an eighth key field,

wherein the first, fifth, and seventh key fields all reference an external object A,

wherein the second, fourth, and sixth key fields all reference an external object B,

wherein the third key field references an external object C,

wherein the eighth key field references an external object D,

wherein the first and the seventh key fields establish an extends relationship between the first and fourth classes, and

wherein the second and fourth key fields establish an extends relationship between the first and second classes; and

compiling the pattern language code to generate an executable, wherein the compiling includes validating the extends relationships between the first and second classes and the first and fourth classes, and replacing the first class with one of the second or fourth classes while compiling;

wherein the extends relationship defines a relationship where the second and fourth classes extend the functionality of the first class in the compiled code, and wherein the first class includes characteristics not included in the second and fourth classes and the second and fourth classes include characteristic not included in the first class.

13. The computer-implemented method of claim 12 , wherein the external object C is in an ontological relationship with the external object A in order to establish a surrogate relationship,

wherein compiling the pattern language code includes validating the surrogate relationship between the first and second classes and the second and third classes, and

wherein the surrogate relationship defines a relationship where the second class can functionally replace the first or third classes in the compiled code.

14. A system comprising:

a computer including one or more processors and memory device coupled to the one or more processors, the computer further including,

a code generator configured to generate a pattern language code having definitions of a number of classes, wherein a definition of a first class of the number of classes comprises a reference to a first key field, wherein a definition of a second class comprises a reference to a second key field, wherein the first key field references a first external object and the second key field references a second external object, wherein the first external object and the second external object are different external objects, and wherein the first external object is in an ontological relationship with the second external object in order to establish a surrogate relationship; and

a compiler configured to compile the pattern language code into an executable, wherein the compiler is configured to validate the surrogate relationship between the first and second classes while compiling;

wherein the surrogate relationship defines a relationship where the second class can functionally replace the first class in the compiled object code.

15. The system of claim 14 , wherein the code generator is further configured to generate a pattern language code including a definition of a third class of the number of classes, wherein the definition of the third class includes a reference to a third key field, wherein the third key field references the first external object, and wherein the first and third key fields establish an extends relationship between the first and third classes; and

wherein the compiler is further configured to validate the extends relationship between the first and third classes while compiling;

wherein the extends relationship defines a relationship where the third class extends the functionality of the first class in the compiled object code.

16. The system of claim 15 , wherein the first class includes characteristics not included in the third class; and

wherein the third class includes characteristics not included in the first class.

17. A system comprising:

a computer including one or more processors and a memory device coupled to the one or more processors, the computer further including,

a code generator configured to generate a pattern language code having definitions of a number of classes, wherein a definition of a first class of the number of classes comprises a reference to a first key field, wherein a definition of a second class comprises a reference to a second key field, wherein the first key field and the second key field references a first external object, and wherein the first and third key fields establish an extends relationship between the first and third classes; and

a compiler configured to compile the pattern language code into an executable, wherein the compiler is configured to validate the extends relationship between the first and second classes while compiling;

wherein the extends relationship defines a relationship where the third class extends the functionality of the first class in the compiled object code, wherein the first class includes characteristics not included in the second class, and wherein the second class includes characteristics not included in the first class.

Assignments (7)
CHANGE OF NAME Recorded Apr 26, 2021
From: INFOR (US), INC.
To: INFOR (US), LLC
Reel/Frame 056048/0944 →
CHANGE OF NAME Recorded Apr 12, 2021
From: LAWSON SOFTWARE, INC.
To: INFOR (US), INC.
Reel/Frame 055986/0127 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2020
From: BANK OF AMERICA, N.A.
To: LAWSON SOFTWARE, INC.; INFOR GLOBAL SOLUTIONS (MICHIGAN), INC.; INFOR (US), INC.; GT NEXUS, INC.
Reel/Frame 053314/0436 →
SECURITY AGREEMENT Recorded Apr 19, 2012
From: LAWSON SOFTWARE, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 028078/0594 →
RELEASE OF SECURITY INTEREST Recorded Apr 5, 2012
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: LAWSON SOFTWARE INC.
Reel/Frame 027997/0553 →
PATENT SECURITY AGREEMENT Recorded Jul 18, 2011
From: LAWSON SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026609/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2006
From: HERRMANN, MICHAEL ALEXANDER; JOHNSON, LEON CURTIS; PATTON, RICHARD D.
To: LAWSON SOFTWARE, INC.
Reel/Frame 017908/0346 →