INFERRING MISSING TYPE INFORMATION FOR REFLECTION
First Claim
1. A system comprising:
- a processor and a memory including a library generating module configured to cause the processor to;
receive metadata extracted from server source code in a server project of an application comprising at least the server project and at least one client project, wherein the extracted metadata comprises a set of program entities comprising a computed transitive closure of an extracted program entity and program entities referenced by the extracted program entity;
determine program entities within the set of program entities for which a definition is missing in the server source code;
replace each of the program entities within the set of program entities for which the definition is missing with a placeholder entity;
mark each placeholder entity;
generate a library from the extracted metadata without compilation of the server project, wherein the library comprises metadata associated with the set of program entities, wherein each program entity in the set of program entities is an entity that is exposed to the at least one client project and wherein the library does not comprise metadata associated with program entities not exposed to the at least one client project; and
provide the generated library to a reflection-based component that provides documentation and disambiguation information for an unmarked program entity in the set of program entities to a client source code editor, and not provide documentation and disambiguation information for a marked program entity in the set of program entities to the client source code editor, wherein the documentation and disambiguation information is provided to the client source code editor dynamically during development of client source code of the at least one client project.
2 Assignments
0 Petitions
Accused Products
Abstract
A stripped-down version of a library is generated from server source code extracted from a server project. The transitive closure of program entities extracted from the server source code and referenced by the extracted program entities can be computed. A placeholder entity can be inferred for an entity defined by the transitive closure computation if a definition of the entity cannot be found in the server source code. The stripped-down library generated from the extracted server source code is received by a reflection-based component that uses reflection to generate documentation and disclosure information helpful in the development of the client source code. A placeholder entity can be marked or decorated to signal to the reflection-based component that client source code is not to be generated for the decorated entities.
41 Citations
20 Claims
-
1. A system comprising:
-
a processor and a memory including a library generating module configured to cause the processor to; receive metadata extracted from server source code in a server project of an application comprising at least the server project and at least one client project, wherein the extracted metadata comprises a set of program entities comprising a computed transitive closure of an extracted program entity and program entities referenced by the extracted program entity; determine program entities within the set of program entities for which a definition is missing in the server source code; replace each of the program entities within the set of program entities for which the definition is missing with a placeholder entity; mark each placeholder entity; generate a library from the extracted metadata without compilation of the server project, wherein the library comprises metadata associated with the set of program entities, wherein each program entity in the set of program entities is an entity that is exposed to the at least one client project and wherein the library does not comprise metadata associated with program entities not exposed to the at least one client project; and provide the generated library to a reflection-based component that provides documentation and disambiguation information for an unmarked program entity in the set of program entities to a client source code editor, and not provide documentation and disambiguation information for a marked program entity in the set of program entities to the client source code editor, wherein the documentation and disambiguation information is provided to the client source code editor dynamically during development of client source code of the at least one client project. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
extracting metadata from server-side source code of a server project of an application under development on a software development computer, the application comprising server-side software generated from the server-side source code and client-side software generated from client-side source code, wherein the extracted metadata comprises metadata associated with a set of program entities comprising a transitive closure of program entities referenced in the extracted metadata, wherein the program entities are entities exposed by the server-side software to the client-side software and wherein the extracted metadata does not comprise a program entity that is not exposed to the client-side software by the server-side software; determining program entities within the set of program entities for which a definition is missing in the server-side source code; replacing each of the program entities within the set of program entities for which the definition is missing with a placeholder entity; marking each placeholder entity; generating a library from the extracted metadata without compilation of the server project, wherein the library comprises metadata associated with a program entity of the set of program entities and does not comprise an executable; receiving the generated library and generating client-side source code and documentation and disambiguation information associated with the program entity of the set of program entities from the generated library by reflection; and displaying the documentation and disambiguation information in a client source code editor dynamically during client-side software development on the software development computer. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage medium comprising computer-executable instructions which when executed cause at least one processor to:
-
extract metadata from server-side source code of a server project of an application, wherein the extracted metadata comprises at least one server-side program entity exposed to a client-side project by the server project and wherein the extracted metadata does not comprise a program entity that is not exposed to the client-side project; extract additional metadata from the server-side source code, wherein the additional extracted metadata comprises at least one additional server-side program entity referenced by the at least one server-side program entity; replace a program entity in the extracted metadata or in the additional extracted metadata that is not defined in the server-side source code with a marked inferred program entity; convert the extracted metadata and the additional extracted metadata to libraries comprising metadata, without compiling the server-side source code; and display documentation and disambiguation information associated with the at least one server-side program entity derived from the libraries in a source code editor during development of client-side source code for the application and not display documentation and disambiguation information associated with the library derived from the marked inferred program entity. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification